HashMap和Hashtable的区别

📚 欢迎来到我的Java八股文专栏! 🎉

各位程序员小伙伴们好呀~ 👋 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨

🚀 专栏介绍

这个专栏将专注于分享Java面试中的经典"八股文"知识点 💡,内容涵盖:

📌 Java基础核心概念

🧠 JVM原理与性能调优

🔄 多线程与并发编程

🏗️ 设计模式实战

🗃️ 常用框架源码解析

⚙️ 系统架构设计思想

🌟 为什么选择这个专栏?

🎯 精准定位:直击大厂Java面试高频考点

🧩 系统全面:从基础到进阶,构建完整知识体系

💎 实战导向:理论+代码示例,拒绝空谈

🔍 深度解析:不只是背诵,更要理解原理

🆕 持续更新:紧跟技术发展趋势

📖 学习建议

建议大家可以这样使用本专栏:

📅 每日一读:每天消化1-2个知识点

✍️ 动手实践:所有代码建议亲自敲一遍

🗂️ 分类整理:建立自己的知识脑图

🔄 定期复习:对抗遗忘曲线

💬 互动讨论:评论区欢迎交流探讨

🛠️ 工具推荐

学习过程中这些工具可能会帮到你:

🔧 IDEA:Java开发神器

📊 JProfiler:性能分析工具

🧪 JUnit:单元测试框架

📝 Markdown:笔记整理

🖇️ Git:版本控制

💌 致读者

技术之路道阻且长,但行则将至 ✊

在这个专栏中,我会:

✅ 用最通俗的语言解释复杂概念

✅ 提供可直接运行的代码示例

✅ 标注每个知识点的面试权重

✅ 分享实际项目中的经验教训

✅ 及时回复大家的疑问

🌈 最后寄语

"八股文"虽被诟病,但扎实的基础知识永远是程序员的立身之本 💪

希望这个专栏能成为你:

🎯 面试冲刺的利器

🏗️ 技术进阶的阶梯

🤝 结识同好的平台

让我们携手并进,在技术的星辰大海中扬帆远航! ⛵

记得⭐️收藏 ⭐️关注 ⭐️不迷路哦~ 😊

**1.**线程是否安全:HashMap是非线程安全的,Hashtable是线程安全的,因为Hashtable内部的方法基本都经过synchronized修饰。(如果你要保证线程安全的话就使用ConcurrentHashMap吧!);

**2.**效率:因为线程安全的问题,HashMap要比Hashtable效率高一点。另外,Hashtable基本被淘汰,不要在代码中使用它;对Nullkey和Nullvalue的支持:HashMap可以存储null的key和value,但null作为键只能有一个,null作为值可以有多个;Hashtable不允许有null键和null值,否则会抛出NullPointerException。

**3.**初始容量大小和每次扩充容量大小的不同:

①创建时如果不指定容量初始值,Hashtable默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。

②HashMap默认的初始化大小为16。之后每次扩充,容量变为原来的2倍。

③创建时如果给定了容量初始值,那么Hashtable会直接使用你给定的大小,而HashMap会将其扩充为2的幂次方大小(HashMap中的tableSizeFor()方法保证,下面给出了源代码)。也就是说HashMap总是使用2的幂作为哈希表的大小,后面会介绍到为什么是2的幂次方。

**4.**底层数据结构:JDK1.8以后的HashMap在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)(将链表转换成红黑树前会判断,如果当前数组的长度小于64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。Hashtable没有这样的机制。

相关推荐
没有bug.的程序员10 分钟前
JAVA面试宝典 -《 架构演进:从单体到 Service Mesh》
java·面试·架构
典学长编程25 分钟前
Java从入门到精通!第十一天(Java常见的数据结构)
java·开发语言·数据结构
皮皮林55141 分钟前
设计一个多租户 SaaS 系统,如何实现租户数据隔离与资源配额控制?
java·saas
霍格沃兹软件测试开发42 分钟前
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成指南:参数化测试 + 多浏览器并行执行
java·数据库·mysql·自动化
Bonnie_12151 小时前
02-netty基础-java四种IO模型
java·开发语言·nio·jetty
我不是星海1 小时前
建造者设计模式
java·开发语言
JIngJaneIL2 小时前
健身管理小程序|基于微信开发健身管理小程序的系统设计与实现(源码+数据库+文档)
java·数据库·小程序·论文·课程设计·毕设·健身管理小程序
Dcs2 小时前
Spring Framework 6.2 正式发布:开发者最值得关注的更新全览!
java
别来无恙1492 小时前
Spring Boot自动装配原理深度解析:从核心注解到实现机制
java·spring boot·后端
亲爱的非洲野猪2 小时前
Spring Cloud Gateway 电商系统实战指南:架构设计与深度优化
java·spring cloud·gateway