定制开发hashmap和hashtable区别是什么?有什么区别?

在一些java定制开发面试的过程中,定制开发经常有人会遇到这个[java面试题]hashmap和hashtable定制开发区别是什么,定制开发下面一起来看看这个面定制开发试题的答案吧。

一、hashmap和hashtable区别

定制开发具体来说的话hashmap和hashtable一共有7定制开发个方面的不同,定制开发下面一一来介绍一下。

1、值不同

HashTable:直接使用对象的hashCode

HashMap:重新计算hash值

2、两个遍历方式的内部实现不同

Hashtable、HashMap两者都是使用了,但是,因为一些历史原因,Hashtable除了使用了Iterator之外,还使用了Enumeration。

3、是否提供contains方法

Hashtable:Hashtable和HashMap不同,它保留了contains、containsValue以及containsKey3个方法

HashMap:它去掉了Hashtable的contains方法,改为了containsKey和containsValue

4、内部实现使用的数组初始化和扩容方式不同

HashTable:在不指定容量的情况下的默认容量为11;不要求底层数组的容量一定要为2的整数次幂;扩容时将容量变为原来的2倍加1。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

HashMap:在不指定容量的情况下的默认容量为16;要求一定为2的整数次幂;扩容时,将容量变为原来的2倍

HashTable中hash数组默认大小是11,增加的方式是old*2+1

5、key和value是否允许null值

Hashtable:key和value都不允许出现null值

HashMap:null能够作为键,这样的键只有一个,能够有一个或者是多个键所对应的值为null

6、线程安全性不同

Hashtable:Synchronize;在多线程并发的情况下,能够直接使用Hashtable,不要自己为它的方法实现同步

HashMap:在缺省情况下是非Synchronize的;使用HashMap的时候就需要自己增加同步处理;HashMap是线程不安全的

7、继承的父类不同

Hashtable:继承Dictionary类

HashMap:继承AbstractMap类

以上就是对于hashmap和hashtable区别的介绍了!你都了解了吗?

想了解更多的java知识性回答吗?更多相关内容,可以继续关注本站的[常见问题]专栏进行了解。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发