JDK源码
mycnice
这个作者很懒,什么都没留下…
展开
-
java 源码心得
java 源码很多地方使用位运算,效率更高对于不再使用的对象,将其应用置null,以帮助GC原创 2015-08-12 10:58:06 · 436 阅读 · 0 评论 -
HashMap Hash碰撞 treemap
HashMap中,如果某个桶中的记录过 大的话(当前是TREEIFY_THRESHOLD = 8),HashMap会动态的使用一个专门的treemap实现来替换掉它。这样做的结果会更好,是O(logn),而不是糟糕的O(n)。它是如何工作 的?前面产生冲突的那些KEY对应的记录只是简单的追加到一个链表后面,这些记录只能通过遍历来进行查找。但是超过这个阈值后HashMap开始将列表升 级成一个二叉树原创 2015-08-06 09:36:01 · 856 阅读 · 0 评论 -
Hashtable与ConcurrentHashMap的区别
锁分段技术HashTable容器在竞争激烈的并发环境下表现出效率低下的原因是所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一转载 2015-08-06 11:18:58 · 1591 阅读 · 0 评论 -
Hashtable HashMap 区别 Hashtable的劣势
Hashtable应尽量避免使用,单线程下可使用HashMap替代,多线程下可使用ConcurrentHashMap替代Hashtable的实现中,大量使用了%,而不是HashMap中的位运算,性能较差,同步方面,大量方法都是synchronized,应该使用ConcurrentHashMap性能比较好Hashtable与HashMap的区别:Hashtable是同步的原创 2015-08-06 11:18:15 · 1584 阅读 · 0 评论