2019年4月1日

摘要: 高并发下也可以使用HashTable 、Collections.synchronizedMap因为他们是线程安全的,但是却牺牲了性能,无论是读操作、写操作都是给整个集合加锁,导致同一时间内其他操作均为之阻塞。 ConcurrentHashMap则兼容了安全和效率问题。 ConcurrentHashM 阅读全文

posted @ 2019-04-01 22:58 FLGB 阅读(1775) 评论(0) 推荐(0) 编辑

摘要: HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。 这时候,HashMap需要扩展它的长度,也就是进行Resize。 影响发生Resize的因素有两个: 1.Capacity HashMap的当前长度。HashMap的长度是 阅读全文

posted @ 2019-04-01 22:42 FLGB 阅读(210) 评论(0) 推荐(0) 编辑

摘要: HashMap是一个用于存储key-value的键值对集合,每个键值对都是一个Entry。这些键值对分散存储在一个数组中,这个数组就是HashMap的主干。 HashMap每个初始值都为null。 1.Put方法的原理 调用Put方法的时候发生了什么呢? 比如调用 hashMap.put("appl 阅读全文

posted @ 2019-04-01 22:31 FLGB 阅读(615) 评论(0) 推荐(0) 编辑

摘要: 单例模式第一版: 如上单例模式却不是线程安全的。两个线程同时满足 if(instance == null){}就会new两次 改进:单例模式第二版: 但是上述代码,也会存在线程安全问题。原因:可能会出现JVM指令重排 一般来说,对于instance = new Singleton1(),一般有三步, 阅读全文

posted @ 2019-04-01 22:18 FLGB 阅读(145) 评论(0) 推荐(0) 编辑


Copyright © 2024 FLGB
Powered by .NET 8.0 on Kubernetes