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 倍。

相关文章
|
Java
【Java基础知识】
【Java基础知识】
72 0
|
2月前
|
分布式计算 安全 Java
Java基础知识都有什么
Java基础知识涵盖了广泛的概念和技能,包括语言特点(如面向对象、简单易用、健壮性、安全性、平台无关性、多线程支持和分布式计算)、语法基础(如标识符、数据类型和运算符)、流程控制语句、数组操作、类与对象、集合框架(如List、Set和Map接口)、异常处理机制及JVM原理等。掌握这些核心知识点对于成为Java开发工程师至关重要,通过实践可逐步深入理解并探索更高级主题。
214 78
|
存储 算法 Java
day15_java_基础知识巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
存储 安全 Java
Java基础知识巩固
本章工作任务 构建Java知识体系 本章技能目标
81 0
|
存储
day13_java_基础知识巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
安全
day14_java_基础知识巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
存储 缓存 监控
|
存储 算法 Java
java重要基础知识汇总
java重要基础知识汇总
87 0
|
SQL 存储 关系型数据库
|
存储 安全 Java
Java基础知识总结
Java基础知识总结
Java基础知识总结