- 说说 List, Set, Queue, Map 四者的区别?
- 集合框架底层数据结构汇总
- set接口实现类有哪些?
- 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
- treeSet底层数据结构是什么? 查询时间复杂度多少? 红黑树 O(logn) 范围查询
- hashSet底层实现是什么? 查询复杂度多少? hash表 O(1) 单值查询
- HashSet如何检查重复?
- linkedHashSet 具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序
- list的实现类有哪些?
- ArrayList是什么?
- ArrayList底层实现是什么? 优缺点 动态数组 随机访问
- ArrayList如何提现随机访问? RandomAccess 接口标识着该类支持快速随机访问。
- ArrayList默认大小? 10
- ArrayList扩容机制
oldCapacity + (oldCapacity >> 1)
- ArrayList动态扩容性能?
Arrays.copyOf()
内存 - System.arraycopy() 和 Arrays.copyOf()方法
- 讲一下ensureCapacity方法,你用过这个方法没有?
- ArrayList删除性能? O(n)
- comparable和 Comparator的区别
- 什么是fail-fast、fail-safe机制? 链接1
- Vector底层实现? 优缺点? 动态数组 线程安全
- Vector如何实现线程安全?
- Vector扩容策略?
oldCapacity + oldCapacity
- CopyOnWriteArrayList实现机制?
- CopyOnWriteArrayList使用场景?
- CopyOnWriteArrayList缺点? 内存占用 读操作误差
- Arraylist 与 LinkedList 区别?
- LinkedList底层实现? 双向链表 顺序访问
- 双向链表和循环双向链表
- Queue实现类有哪些?
- Queue 与 Deque 的区别
- PriorityQueue : 基于堆结构实现,可以用它来实现优先队列。
- treemap底层数据结构以及特点?
- HashMap底层数据结构以及特点?
- 解决hash冲突的方法? 拉链 开放寻址
- hashmap jdk1.7中的数据结构? 数组 + 链表
- hashmap jdk1.7下链表闭环? 头插法 扩容的时候
- hashmap jdk1.7下线程不安全的场景?
- hashmap jdk1.7中put方法流程? 初始化 寻址 冲突 赋值 扩容
- hashmap jdk1.8中的数据结构?
- hashmap jdk1.8下线程不安全的场景?
- hashmap jdk1.8下如何扩容?
- hashmap jdk1.8 下put方法流程? 初始化 寻址 冲突 赋值 扩容
- hashmap 初始值为什么是16
- 什么时候触发扩容?
- 加载因子是做什么的?
- 加载因子为什么是0.75? 调整大了会怎样? 调整小了会怎样?
- 什么时候链表转成红黑树? 链表长度>=8 并且 数组长度>64
- hashmap扩容流程? 区分jdk1.7 和 jdk1.8
- 数组下标是如何确定的? 位运算
- 讲一下什么是扰动机制,目的是什么?
- HashMap 有哪几种常见的遍历方式?
- HashTable底层数据结构以及特点?
- HashMap 和 Hashtable 的区别
- HashMap 和 HashSet 区别
- HashMap 和 TreeMap 区别
- 如何确保hashmap线程安全,有哪些方法?
- 讲一下concurrentHashmap在jdk1.7 和 jdk1.8下的数据结构? 有什么优化? 并发度
- ConcurrentHashMap 和 Hashtable 的区别
- concurrnetHashMap是如何确保线程安全的? ReentrentLock synchronized + cas
- concurrentHashMap在jdk1.7下扩容和在jdk1.8下的扩容过程讲一下?
- concurrentHashMap put方法和get方法 不同版本下,如何实现讲一下?
- LinkedHashMap 源码详细分析(JDK1.8)
- LinkedHashMap底层数据结构以及特点?
- LinkedHashMap 如何保证 有序性
- LinkedHashMap如何实现LRU算法?
- 什么是WeakHashMap?
- java集合使用注意事项