
【集合】
文章平均质量分 88
集合
zero__007
这个作者很懒,什么都没留下…
展开
-
HashMap 1.7和1.8有哪些区别?
一、真实面试题之:Hashmap的结构,1.7和1.8有哪些区别不同点:(1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向延伸,当采用头插法时会容易出现逆序且环形链表死循环问题。但是在JDK1.8之后是因为加入了红黑树使用尾插法,能够避免出现逆序且链表死循环的问题。(2)扩容后数据存储位置的计算方式也不一样:在JDK1.7的时候是直接用hash值和需要扩容的二进制数进行&(这里就是为什么扩容的时候为啥一定必须转载 2021-01-31 18:36:33 · 979 阅读 · 0 评论 -
HashMap之resize
转载自:https://blog.csdn.net/weixin_39667787/article/details/86678215 HashMap是如何来判定何时该扩容的呢? final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { if ((tab = tab...转载 2020-04-27 19:51:13 · 402 阅读 · 0 评论 -
HashMap
Map是映射表,基本思想是键-值(对)关联,可以使用键来查找值。一般常见的Map有HashMap,LinkedHashMap,TreeMap,WeakHashMap,ConcurrentHashMap,IdentityHashMap。原创 2015-02-04 20:19:09 · 544 阅读 · 0 评论 -
subList的缺陷
转载自:http://blog.csdn.net/chenssy/article/details/44102915ArrayList的subList返回仅仅只是一个视图: public List<E> subList(int fromIndex, int toIndex) { subListRangeCheck(fromIndex, toIndex, size);转载 2017-09-05 18:58:26 · 961 阅读 · 0 评论 -
红黑树TreeMap使用
转载自:http://blog.csdn.net/chenssy/article/details/26668941TreeMap的实现是红黑树算法的实现。红黑树简介 红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性。同时红黑树更是一个自平衡的排序二叉树。 一个基本的二叉树都需要满足一个基本性质,即树中的任何节点的值大于它的左子节转载 2017-09-04 19:04:18 · 371 阅读 · 0 评论 -
Java8下的ConcurrentHashMap新操作
更新值 在Java7时,对ConcurrentHashMap进行线程安全的更新操作需要使用循环来处理(可以参见http://blog.csdn.net/zero__007/article/details/49833819),但是在Java8中提供了更方便的原子更新方法。public V compute(K key, BiFunction remappingFunction)原创 2016-05-05 21:40:30 · 7386 阅读 · 0 评论 -
分析 ArrayBlockingQueue 构造函数加锁问题
转载自:https://blog.csdn.net/chenssy/article/details/78681423 ArrayBlockingQueue 中的一个构造函数使用了锁:public ArrayBlockingQueue(int capacity, boolean fair, Collection<? extend...转载 2018-06-07 21:46:47 · 842 阅读 · 0 评论 -
LinkedHashMap
LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同。原创 2017-09-22 15:08:41 · 600 阅读 · 0 评论 -
ArrayList中elementData为什么被transient修饰?
Java的ArrayList中,定义了一个数组elementData用来装载对象的,具体定义如下:/** * The array buffer into which the elements of the ArrayList are stored. * The capacity of the ArrayList is the length of this array buffer. Any原创 2016-08-09 21:33:58 · 12393 阅读 · 9 评论 -
WeakHashMap粗解
转载自:http://blog.csdn.net/u010412719/article/details/52035792 http://blog.csdn.net/z69183787/article/details/54581740 http://blog.csdn.net/z69183787/article/details/5458转载 2017-03-09 20:16:52 · 417 阅读 · 0 评论 -
ConcurrentHashMap的putIfAbsent可能存在的问题
转载自:http://blog.csdn.net/iter_zc/article/details/40543365 在业务上可能会遇到有这种场景,全局维护一个并发的ConcurrentMap, Map的每个Key对应一个对象,这个对象需要只创建一次。如果Map中该key对应的value不存在则创建,否则直接返回。 通常会使用ConcurrentHashMap的putIfAbsent(...转载 2016-09-13 20:18:08 · 6415 阅读 · 3 评论 -
ConcurrentHashMap设计原理
ConcurrentHashMap是一个支持高并发的高性能的HashMap实现,它支持完全并发的读以及一定程度并发的写。原创 2015-02-04 20:24:11 · 521 阅读 · 0 评论 -
ConcurrentHashMap源码(JDK1.8版)
转载自:http://blog.csdn.net/chenssy/article/details/73521950ConcurrentHashMap定义了如下几个常量:// 最大容量:2^30=1073741824private static final int MAXIMUM_CAPACITY = 1 << 30;转载 2017-11-01 19:45:13 · 289 阅读 · 0 评论 -
非阻塞队列ConcurrentLinkedQueue与阻塞队列LinkedBlockingQueue原理探究
转载自:http://ifeve.com/%E5%B9%B6%E5%8F%91%E9%98%9F%E5%88%97-%E6%97%A0%E7%95%8C%E9%9D%9E%E9%98%BB%E5%A1%9E%E9%98%9F%E5%88%97concurrentlinkedqueue%E5%8E%9F%E7%90%86%E6%8E%A2%E7%A9%B6/ http:转载 2017-08-04 17:29:50 · 349 阅读 · 0 评论 -
阻塞队列
转载自:http://www.infoq.com/cn/articles/java-blocking-queue/ http://blog.csdn.net/z69183787/article/details/52055937什么是阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获转载 2016-08-18 22:46:33 · 748 阅读 · 0 评论 -
LinkedBlockingQueue
Queue与Deque的区别: Queue单向队列,先进先出。 Deque 双向队列ArrayBlockingQueue和LinkedBlockingQueue的区别: 1.ArrayBlockingQueue定长的缓冲队列;LinkedBlockingQueue 无界的缓冲队列。 2.队列中锁的实现不同:ArrayBloc原创 2016-08-13 18:57:30 · 640 阅读 · 0 评论 -
ConcurrentHashMap使用示例
ConcurrentHashMap是并发效率更高的Map,用来替换其他线程安全的Map容器,比如Hashtable和Collections.synchronizedMap。实际上,并发执行时,线程安全的容器只能保证自身的数据不被破坏,但无法保证业务的行为是否正确。错误的理解这里的线程安全,不恰当的使用ConcurrentHashMap,往往会导致出现问题。举个例子: public st原创 2015-11-14 10:01:25 · 27073 阅读 · 2 评论 -
CopyOnWriteArrayList与CopyOnWriteArraySet源码简析
转载自: http://www.cnblogs.com/leesf456/p/5547853.html http://www.cnblogs.com/leesf456/p/5549138.htmlCopyOnWriteArrayList CopyOnWriteArrayList使用的数据结构是数组转载 2017-10-17 18:34:51 · 266 阅读 · 0 评论 -
ConcurrentXxxXxx
转载自:http://www.cnblogs.com/leesf456/p/5539142.html http://blog.csdn.net/chenssy/article/details/74853120 ConcurerntLinkedQueue是一个基于链接节点的无界线程安全队列,按照 FIFO(先进先出)原则对元素进行排序。队列的头部是队转载 2017-11-03 09:46:02 · 826 阅读 · 0 评论