day16_java_基础知识巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!

Hashmap 和 hashtable ConcurrentHashMap 区别:


区别对比一(HashMap 和 HashTable 区别):


1、HashMap 是非线程安全的,HashTable 是线程安全的。

2、HashMap 的键和值都允许有 null 值存在,而 HashTable 则不行。

3、因为线程安全的问题,HashMap 效率比 HashTable 的要高。

4、Hashtable 是同步的,而 HashMap 不是。因此,HashMap 更适合于单线

程环境,而 Hashtable 适合于多线程环境。一般现在不建议用 HashTable,

是 HashTable 是遗留类,内部实现很多没优化和冗余。②即使在多线程环境下,

现在也有同步的 ConcurrentHashMap 替代,没有必要因为是多线程而用

HashTable。


区别对比二(HashTable 和 ConcurrentHashMap 区别):


HashTable 使用的是 Synchronized 关键字修饰,ConcurrentHashMap 是JDK1.7 使用了锁分段技术来保证线程安全的。

JDK1.8ConcurrentHashMap 取消了Segment 分段锁,

采用 CAS 和 synchronized 来保证并发安全。数据结构跟 HashMap1.8的结构类似,数组+链表/红黑二叉树。


synchronized 只锁定当前链表或红黑二叉树的首节点,这样只要 hash 不冲突,

就不会产生并发,效率又提升 N 倍。

相关文章
|
索引
day04_java基础知识
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
存储 算法 Java
day15_java_基础知识巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
存储 安全 Java
Java基础知识巩固
本章工作任务 构建Java知识体系 本章技能目标
91 0
|
安全
day14_java_基础知识巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
存储 缓存 监控
|
Java 程序员 API
|
SQL 存储 关系型数据库
|
存储 设计模式 SQL
Java基础知识总结(下)
Java基础知识总结(下)
Java基础知识总结(下)
|
存储 域名解析 网络协议
java基础知识02
接着《java基础知识01》,再来聊聊剩下的那些知识点。
java基础知识02
|
存储 并行计算 JavaScript
Java基础知识总结(中)
Java基础知识总结(中)
Java基础知识总结(中)