![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java集合
java集合
紫金小飞侠
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap源码解析 jdk1.8
put操作put操作采用CAS(没有hash冲突)+synchronized(hash冲突)实现并发插入或更新操作:如果没有初始化先初始化当前Segment/bucket(桶)为空时,使用CAS操作,将Node放入对应的bucket中。如果当前map正在扩容f.hash == MOVED,先协助扩容,再更新值。.出现hash冲突,则采用synchronized关键字: 遍历链表,若找到对应的node节点,则修改node节点的val,否则在链表末尾添加node节点;倘若当前节点是红黑树的根节点,原创 2021-02-26 10:00:41 · 118 阅读 · 0 评论 -
java String方法传参
str是属于main方法的,这个池子里有了abc这个池子里面没有xxx,那么就重新创建一个指向它原创 2020-09-21 20:04:18 · 383 阅读 · 0 评论 -
Hashtable与ConcurrentHashMap区别
Hashtable与ConcurrentHashMap区别转载 2020-12-17 20:00:14 · 77 阅读 · 0 评论 -
hashMap和TreeMap
HashMap和TreeMap的区别转载 2020-12-17 19:58:49 · 83 阅读 · 0 评论 -
HashSet底层实现原理
HashSet的内部采用了HashMap作为数据存储,HashSet其实就是在操作HashMap的key因为HashMap是无序的,因此HashSet也不能保证元素的顺序 因为HashSet中没有对应同步的操作,因此是线程不安全的 支持null元素(因为hashMap也支持null键和null值)public class HashSet<E> extends AbstractSet<E> implements Set<E>, Clone..原创 2020-12-16 19:55:23 · 11356 阅读 · 2 评论 -
CopyOnWriteArrayList底层原理解析
ArrayList并不是一个线程安全的容器,对于高并发下可以用Vector,或者使用Collections的静态方法将ArrayList包装成一个线程安全的类,但是这些方式都是采用Java关键字synchronzied对方法进行修饰,利用独占式锁来保证线程安全的。但是,由于独占式锁在同一时刻只有一个线程能够获取到对象监视器,很显然这种方式效率并不是太高。集合框架中的ArrayList是非线程安全的,Vector虽是线程安全的,但由于简单粗暴的锁同步机制,性能较差。而CopyOnWriteArrayList原创 2020-12-16 19:38:39 · 538 阅读 · 1 评论 -
java HashMap
HashMap转载 2020-05-04 09:20:40 · 98 阅读 · 0 评论