您的位置:首页 > 职场人生

浅谈HashMap与HashTable

2016-06-09 10:52 375 查看
最近去面试,面试官问了我一个问题,HashMap与HashTable有什么区别?我当时一脸懵B,没能完整答上来。于是,我整理了此文。


HashMap与HashTable的区别:

HashMap是线程不安全的,HashTable是线程安全的,它的内部方 法基本都是synchronized

HashMap的键和值都是允许为null的,而HashTable则不行

因为HashMap是线程安全的,所以它比HashTable的效率高

那问题来了,什么是线程安全,什么又是线程不安全呢?

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。

线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得的数据是脏数据。

HashMap与HashTable的底层实现是什么呢?

HashMap与 HashTable的内部存储结构都采用了相同的存储机制—哈希表(散列表)。二者的实现基本一致。

采用哈希表的好处是:这种数据结构综合了数组和链表的优点,所以具有较快的查询速度,以及相对较快的增删速度,很适合在海量数据的环境中使用。

想要深入了解HashMap与HashTable的内部实现机制,请参考终点大神的深入解析HashMap、HashTable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试