面试题
swpu_ocean
个人博客网站:www.zhyocean.cn
展开
-
你必须知道的HashMap面试题
1.HashMap的工作原理,其中get()方法的工作原理?HashMap基于hash原理,通过put()和get()方法存储和获取元素。它内部使用数组+链表或红黑树的结构,通过hash运算找到bucket位置来存储Entey对象,通过equals()方法找到正确的键值对。HashMap使用链地址法来解决hash碰撞问题,当发生碰撞时,对象会存储在链表的下一个节点处。get()首先通过计算ke...原创 2018-12-20 22:15:28 · 1417 阅读 · 2 评论 -
从源码初步了解ConcurrentHashMap
为什么要了解ConcurrentHashMap首先先说下为什么我们需要了解ConcurrentHashMap。原因其实很简单:①HashMap在多线程环境下会有线程不安全的情况,比如在put时会造成死循环。②线程安全的HashTable效率低,HashTable的所有方法都使用Synchroized来确保线程安全,但是这也是当一个线程进行get操作时,其他线程想要get也得靠边等待。为了保证线...原创 2019-02-23 16:57:41 · 499 阅读 · 0 评论 -
JDK1.7和JDK1.8中HashMap为什么是线程不安全的?
前言只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap。但是为什么HashMap是线程不安全的呢,之前面试的时候也遇到到这样的问题,但是当时只停留在***知道是***的层面上,并没有深入理解***为什么是***。于是今天重温一个HashMap线程不安全的这个问题。首先需要强调一点,HashMap的线程不安全体现在会造成死循环、数据丢...原创 2019-03-30 19:57:35 · 75294 阅读 · 39 评论