04 2019 档案
摘要:什么是双端队列?
ArrayDeque是怎么实现双端队列的?
ArrayDeque是线程安全的吗?
ArrayDeque是有界的吗?
阅读全文
摘要:DelayQueue是阻塞队列吗?
DelayQueue的实现方式?
DelayQueue主要用于什么场景?
阅读全文
摘要:ConcurrentLinkedQueue是阻塞队列吗?
ConcurrentLinkedQueue如何保证并发安全?
ConcurrentLinkedQueue能用于线程池吗?
阅读全文
摘要:LinkedTransferQueue是什么东东?
LinkedTransferQueue是怎么实现阻塞队列的?
LinkedTransferQueue是怎么控制并发安全的?
阅读全文
摘要:PriorityBlockingQueue的实现方式?
PriorityBlockingQueue是否需要扩容?
PriorityBlockingQueue是怎么控制并发安全的?
阅读全文
摘要:SynchronousQueue的实现方式?
SynchronousQueue真的是无缓冲的吗?
SynchronousQueue在高并发情景下会有什么问题?
阅读全文
摘要:LinkedBlockingQueue的实现方式?
LinkedBlockingQueue是有界的还是无界的队列?
LinkedBlockingQueue相比ArrayBlockingQueue有什么改进?
阅读全文
摘要:ArrayBlockingQueue的实现方式?
ArrayBlockingQueue是否需要扩容?
ArrayBlockingQueue有什么缺点?
阅读全文
摘要:什么是优先级队列?
怎么实现一个优先级队列?
PriorityQueue是线程安全的吗?
PriorityQueue就有序的吗?
阅读全文
摘要:什么是堆?
什么是堆化?
什么是堆排序?
时间复杂度各是多少?
有哪些应用?
阅读全文
摘要:ConcurrentSkipListSet的底层是ConcurrentSkipListMap吗?
ConcurrentSkipListSet是线程安全的吗?
ConcurrentSkipListSet是有序的吗?
ConcurrentSkipListSet和之前讲的Set有何不同?
阅读全文
摘要:CopyOnWriteArraySet是用Map实现的吗?
CopyOnWriteArraySet是有序的吗?
CopyOnWriteArraySet以何种方式保证元素不重复?
如何比较两个Set中的元素是否完全一致?
阅读全文
摘要:TreeSet真的是使用TreeMap来存储元素的吗?
TreeSet是有序的吗?
TreeSet和LinkedHashSet有何不同?
阅读全文
摘要: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源码分析(四)
红黑树是通过中序遍历进行的吗?
有没有更高效的遍历方式?
如何按范围查找元素?
如何查找最近的元素?
阅读全文
摘要:死磕 java集合之TreeMap源码分析(三)
红黑树删除元素的时间复杂度如何?
为什么删除元素之后要做平衡?
以什么样的形式平衡最省时间?
阅读全文
摘要:死磕 java集合之TreeMap源码分析(二)
红黑树插入元素的时间复杂度如何?
为什么插入元素之后要做平衡?
以什么样的形式平衡最省时间?
如果插入元素的顺序不一样,会得到同样的树吗?
阅读全文
摘要:死磕 java集合之TreeMap源码分析(一)
红黑树是什么?有什么特性?
它的时间复杂度是多少?
它跟SortedMap有什么区别和联系?
它的左旋、右旋是怎么玩的?
阅读全文
摘要:死磕 java集合之WeakHashMap源码分析
你知道它的存储结构是怎样的吗?
它和HashMap有什么不同?
它为什么叫做弱HashMap,弱在哪?
它通常的用途是什么?
阅读全文
摘要:死磕 java集合之LinkedHashMap源码分析
你了解它的存储结构吗?
你知道它为什么可以用来实现LRU缓存吗?
它真的可以直接拿来实现LRU缓存吗?
阅读全文
摘要:HashMap使用什么结构存储数据?java7和java8的实现方式有什么区别?它为什么那么快?它什么时候进行树化?什么时候进行反树化?它的扩容规则又是怎样的?有没有什么数据结构可以替换红黑树的实现部分?
阅读全文
摘要:CopyOnWriteArrayList是线程安全版本的ArrayList,实现了读写分离,每次修改都是一次全量拷贝,适用于读多写少的场景,而且只保证最终一致性!
阅读全文
摘要:见过的最详细的ArrayList的源码分析了,分析得很透彻。比如,c.toArray()一定返回Object[]类型吗?elementData声明为transient,那它到底是怎么序列化的呢?远远不止这些……
阅读全文