没有合适的资源?快使用搜索试试~ 我知道了~
真实模拟面试官面试流程.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 85 浏览量
2024-03-04
12:14:16
上传
评论
收藏 4.89MB PDF 举报
温馨提示
试读
53页
java真实模拟面试官面试流程
资源推荐
资源详情
资源评论
String常用方法
split 分割字符串
substring 截取字符串
charAt 下标返回char值,对呀的字符
trim 清除两边空格
indexOf 返回字符第一次出现的下标
lastIndexOf 返回最后一次出现的下标
tostring 转成字符串
valueof 转成字符串 即便是null也不会报错
equals 比较字符串
towerCase 转小写
toUpperCase 转大写
conatans 包含
替换 replace 长度 length
startsWith 判断是否某个字符串开始 endsWith 结束
==和equals比较
==比的是栈中的值,基本数据类型比较的是变量值,而引用类型比较的是堆中的内存地址
equals:在object中默认也是采用==去比较,通常会重写
如果没有重写的话,和==是没有什么差别
String的存储原理
String、StringBuffer、StringBuilder
String是final修饰的,不可变,每次修改都会产生新的对象
而StringBuffer和StringBuilder都是在原来的对象进行操作
StringBuffer是synchronized修饰的是线程安全的,StringBuilder是线程不安全的
所以StringBuilder性能比StringBuffer要高
当经常改变字符串内容是优先使用StringBuilder
当你要考虑线程安全,是共享变量,结果一直,使用StringBuffer
image-20220310163225461
接口和抽象类
首先抽象只能单继承,接口可以多实现
抽象类可以存在普通的方法,而接口中只能存在抽象的方法。
抽象类的成员变量可以是各种类型,而接口当中只能是静态常量类型。
接口的设计目的就对类的一种约束,它可以强制要求不同的类具有相同的行为。它只约束了行为的有
无,不对具体实现进行限制。
而抽象类的目的呢,就是为了代码复用。当不同的类具有相同的行为,那就可以把这些相同的行为,派
生出一个抽象类。
List:按照对象的顺序保存对象,有序可重复的,它允许多个null,可以使用迭代器取出所有元
素,还可以使用get(int index) 获取指定元素
Set:它没有下标,元素不能重复,只能允许一个null,只能使用迭代器去遍历,并没有提供下标的
方式
List
有序不可重复,能允许多个null元素对象,list存进去是什么顺序取出来就是这个顺序
ArrayList和LinkedList的区别
(1)两者都是线程不安全,都实现了Collection接口。
(2)数据结构:ArrayList是基于动态数组的数据结构,LinkedList是基于双向链表的数据结构。
(3)性能:ArrayList支持随机访问,查询快,增删慢,查询的时间复杂度为O(1),插入和删除的时间
复杂度为O(n),因为对插入和删除位置后面的元素进行移动位置,以保证内存的连续性
LinkedList不支持随机访问,查询慢,增删快,查询的时间复杂度为O(n),插入和删除的时间复杂度为
O(1)
(4)空间的消耗:ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而
LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
ArrayList
1. 默认初始化容量是10
2. 底层是一个Object [ ] 数组
3. ArrayList集合的扩容
增长原来的1.5倍
尽可能少扩容。因为扩容效率比较低,建议一开始预估计元素个数,给一个初始化容量
4. 数组优点:
检索效率比较高
因为每个元素占用内存大小一样,内存地址也是连续的,知道首元素内存地址,然后知道下
标,通过数学表达式算出元素的内存地址,所以检索效率最高
向数组末尾添加元素,效率不收影响
5. 数组的缺点
增删效率比较低,在arrayList中间插入或者删除,该位置后面的元素都会被移动
查询的效率是0到1,而增删效率是0到n
6. 面试官经常问?这么多集合你经常用哪一个
ArrayList集合,因为数组末 尾添加元素是不收影响的,
检索/查找元素操作较高
LinkedList
1. 底层是一个双向列表,引用上一个和下一个内存地址,中间存储数据
2. 链表优点:
因为链表上的元素内存地址不连续
所有随机增删元素的时候不会涉及到元素位移,因此随机增删效率较高
3. 链表缺点:
不能通过表达式计算元素的内存地址
每一次查询都要从头开始遍历,所以链表集合查找的效率较低
ArrayList:把检索发挥到极致
LinkedList:把增删发挥到极致
加元素都是往末尾添加,所以ArrayList用的比LinkedList多
Set
无序不可重复,最多允许有一个null元素对象,而set是根据哈希值来存储
而实现set接口有hashset和sortedSet接口
HashSet
其底层实现是HashMap的key,初始化容量是16,负载因子是0.75,扩容机制,是变为原来的2倍。
sortedSet接口下面是TreeSet
TreeSet
底层是new了一个treeMap
TreeSet()是使用二叉树的原理,每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
Map
剩余52页未读,继续阅读
资源评论
Java毕设王
- 粉丝: 6730
- 资源: 1083
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功