集合
集合
概念
数组与集合区别,用过哪些?
说说Java中的集合?
Java中的线程安全的集合是什么?
Collections和Collection的区别
集合遍历的方法有哪些?
List
讲一下java里面list的几种实现,几种实现有什么不同?
list可以一边遍历一边修改元素吗?
list如何快速删除某个指定下标的元素?
Arraylist和LinkedList的区别,哪个集合是线程安全的?
ArrayList线程安全吗?把ArrayList变成线程安全有哪些方法?
为什么ArrayList不是线程安全的,具体来说是哪里不安全?
ArrayList 和 LinkedList 的应用场景?
ArrayList的扩容机制说一下
线程安全的 List, CopyonWriteArraylist是如何实现线程安全的
ArrayList 与 Vector 的区别
- ArrayList 是不同步的,Vector 方法上基本都加了synchronized,是同步的
- ArrayList 空构造函数是构造的空的集合,在添加元素时初始化默认为 10 容量的数据,Vector 空构造函数初始就分配了 10 个长度的空间
- 扩容不同,ArrayList 每次扩容后是 1.5 倍原长度,Vector 通过可配置的
capacityIncrement
参数进行扩容,默认为 0,即增长一倍的存储空间
Map
如何对map进行快速遍历?
HashMap实现原理介绍一下?
HashMap是线程安全的吗?
hashmap的put过程介绍一下
HashMap的put(key,val)和get(key)过程
hashmap 调用get方法一定安全吗?
HashMap一般用什么做Key?为啥String适合做Key呢?
为什么HashMap要用红黑树而不是平衡二叉树
hashmap key可以为null吗?
重写HashMap的equal和hashcode方法需要注意什么?
重写HashMap的equal方法不当会出现什么问题?
列举HashMap在多线程下可能会出现的问题?
HashMap的扩容机制介绍一下
HashMap的大小为什么是2的n次方大小呢?
往hashmap存20个元素,会扩容几次?
说说hashmap的负载因子
Hashmap和Hashtable有什么不一样的?Hashmap一般怎么用?
ConcurrentHashMap怎么实现的?
分段锁怎么加锁的?
分段锁是可重入的吗?
已经用了synchronized,为什么还要用CAS呢?
ConcurrentHashMap用了悲观锁还是乐观锁?
HashTable 底层实现原理是什么?
HashTable线程安全是怎么实现的?
hashtable 和concurrentHashMap有什么区别
说一下HashMap和Hashtable、ConcurrentMap的区别
Set
Set集合有什么特点?如何实现key无重复的?
有序的Set是什么?记录插入顺序的集合是什么?
场景
Java 实现 LRU
- 最简单的就是使用 LinkedHashMap 实现 LRU。
- LinkedList 实现基于 LRU 算法的缓存