- 1.常用的集合类有哪些?
- 2.List,Set,Map三者的区别?
- 3.常用集合框架底层数据结构
- 4.哪些集合类是线程安全的?
- 5.迭代器Iterator是什么
- 6.Java集合的快速失败机制 “fail-fast”和安全失败机制“fail-safe”是什么?
- 7.如何边遍历边移除 Collection 中的元素?
- 8.Array 和 ArrayList 有什么区别?
- 9.comparable 和 comparator的区别?
- 10.Collection和Collections有什么区别?
- 11.遍历一个List有哪些不同的方式?
- 12.ArrayList的扩容机制
- 13.ArrayList和LinkedList的区别是什么?
- 14.ArrayList和Vector的区别是什么?
- 15.简述ArrayList、Vector、LinkedList 的存储性能和特性?
- 16.说一下HashSet的实现原理
- 17.HashSet如何检查重复?(HashSet是如何保证数据不可重复的?)
- 18.HashSet与HashMap的区别
- 19.HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现?
- 20.HashMap的长度为什么是2的幂次方
- 21.HashMap的put方法的具体流程?
- 22.HashMap的扩容操作是怎么实现的?
- 23.HashMap默认加载因子为什么选择0.75?
- 24.为什么要将HashMap链表中转红黑树的阈值设为8?为什么不一开始直接使用红黑树?
- 25.HashMap是怎么解决哈希冲突的?
- 26.HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?
- 27.关于HashMap的key一些问题
- 28.HashMap多线程导致死循环问题
- 29.ConcurrentHashMap底层具体实现知道吗?
- 30.HashTable的底层实现知道吗?
- 31.HashMap、ConcurrentHashMap及Hashtable的区别
- 32.Java集合的常用方法
32.Java集合的常用方法
先说下结论,一般面试时需要记住,ArrayList
的初始容量为10,扩容时对是旧的容量值加上旧的容量数值进行右移一位(位运算,相当于除以2,位运算的效率更高),所以每次扩容都是旧的容量的1.5倍。
具体的实现大家可查看下ArrayList
的源码。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版