hashmap和hashtable的区别以及底层

直接说区别:

1. hashMap没加锁,hashTable加锁了。

hashMap大部分都是单线程操作,效率比hashTable效率高(效率高大多数情况下线程都不怎么安全),在多线程并发情况下会造成死锁问题。
hashTable:每一个方法都加了同步锁,因此适合多线程并发。
注:Hashtable线程安全,底层通过synchronized关键字锁住当前对象,锁的细粒度太大,导致并发性能太差

2.继承的父类不同
hashMap继承AbstractMap类。
hashTable继承Dictionary类。

3.初始容量和扩容大小不同
hashMap默认初始容量为16,扩容为原长度2倍。
hashTable默认初始容量为11,每次扩容2n+1。

4.hashMap的key和value可以为null值

5.Hashtable比HashMap多一个elements方法

相同处:
1.都实现了 map,cloneable serializable 接口

以上摘抄自
在这里插入图片描述

底层在自己主页的另一个文章,就不写了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值