摘要:
LinkedHashSet的底层使用什么存储元素?
LinkedHashSet与HashSet有什么不同?
LinkedHashSet是有序的吗?
LinkedHashSet支持按元素访问顺序排序吗? 阅读全文
摘要:
HashSet怎么保证添加元素不重复?
HashSet是否允许null元素?
HashSet是有序的吗?
HashSet是同步的吗?
什么是fail-fast? 阅读全文
摘要:
什么是跳表?
跳表有哪些特性?
跳表相比于红黑树如何呢?
为什么Redis选择使用跳表来实现有序集合? 阅读全文
摘要:
一句话,讲清楚java泛型的本质(非类型擦除)
关于java泛型,你知道不知道的都在这里了~~ 阅读全文
摘要:
拜托,面试别再问我跳表了!
何为跳表?
跳表使用什么样的存储结构?
为何Redis选择用跳表来实现有序集合? 阅读全文
摘要:
死磕 java集合之ConcurrentHashMap源码分析(三)
ConcurrentHashMap查询是否也加锁?
ConcurrentHashMap有哪些值得我们学习的技术?
ConcurrentHashMap有哪些不能解决的问题? 阅读全文
摘要:
死磕 java集合之ConcurrentHashMap源码分析(二)——扩容
ConcurrentHashMap扩容门槛是多少?怎么计算得来?
ConcurrentHashMap装载因子是多少?
ConcurrentHashMap扩容规则是怎么样的?
ConcurrentHashMap扩容怎么保证多线程安全?
ConcurrentHashMap元素个数是怎么存储的?
ConcurrentHashMap是不是强一致性的? 阅读全文
摘要:
死磕 java集合之ConcurrentHashMap源码分析(一)
它的存储结构是什么样的?
它使用了哪些锁?
它是怎么扩容的?
它是否是强一致性的?
它不能解决哪些问题?
它的源码中使用了哪些不常见的技术? 阅读全文
摘要:
如何阅读jdk源码?
1. 设定目标
2. 提出问题
3. 如何提出问题
4. 带着问题阅读源码,忽略不必要的细节,死磕重要的细节
5. 多做比较
6. 多做实验
7. 耐心&坚持
8. 彩蛋 阅读全文
摘要:
死磕 java集合之TreeMap源码分析(四)
红黑树是通过中序遍历进行的吗?
有没有更高效的遍历方式?
如何按范围查找元素?
如何查找最近的元素? 阅读全文