昆明建设工程质量备案在哪个网站,网站项目建设人员规划,怎么直接用代码做网站,南宁自助建站模板下载HashMap 和 HashTable 有什么区别#xff1f;java中的另一个线程安全的与HashMap极其类似的类是什么#xff1f;同样是线程安全#xff0c;它与HashTable在线程同步上有什么不同#xff1f;HashMap 与 ConcurrentHashMap的区别#xff1f;为什么 ConcurrentHashMap 比 Has… HashMap 和 HashTable 有什么区别java中的另一个线程安全的与HashMap极其类似的类是什么同样是线程安全它与HashTable在线程同步上有什么不同HashMap 与 ConcurrentHashMap的区别为什么 ConcurrentHashMap 比 HashTable效率高针对 ConcurrentHashMap 锁机制具体分析JDK1.7 vs JDK1.8?ConcurrentHashMap 在1.8中为什么要使用内置锁 synchronized 来代替重入锁 ReetrantLockConcurrentHashMap 简单介绍ConcurrentHashMap 的并发度是多少 1. 答1HashMap 是线程不安全的HashTable 是线程安全的。
2由于线程安全所以HashTable 效率比不上 HashMap。
3HashMap 最多只允许一条记录的键为null允许多条记录的值为null而HashTable不允许。
4HashMap 的默许初始化数组的大小是16HashTable 是11前者扩容时扩大两倍后者扩大两倍1
5HashMap 需要重新计算hash值而HashTable 直接使用对象的hashCode.
2. 答ConcurrentHashMap类。HashTable 是使用synchronized关键字加锁的原理就是对对象加锁而针对ConcurrentHashMap在JDK1.7中采用分段锁的方式在JDK1.8中直接采用了CAS无锁算法synchronized也采用分段锁的方式并大大缩小了锁的粒度。
3. 答除了加锁原理上没有太大的区别。另外HashMap 的键值允许为null但是ConcurrentHashMap 都不允许。
4. 答HashTable使用一把锁锁住整个链表结构处理并发问题多个线程竞争一把锁容易阻塞。ConcurrentHashMap在1.7中使用分段锁ReentrantLock segment HashEntry相当于把一个HashMap分成多个段每段都分一把锁这样支持多线程访问。锁粒度基于segment,包含多个HashEntry。在1.8中使用CASsynchronizedNode红黑树。锁力度Node。锁力度降低了。
5. 答 6. 答 7. 答 8. 答