我觉得逼格高,不是体现在问题多刁钻,知识点多深,而是一个非常明确,无歧义的问题,能考察出面试者多方面的能力.这个问题背后:1.了解java中,HashMap的实现:如果一个面试者了解这一点,说明至少他关心过java提供的数据类型的实现,甚至极可能看过源码,他应该不会是一个纯粹的苦力.2.知道『不影响读写的情况下扩容』是什么含义,说明他在工作中了解多线程的相关知识.3.如果他能提到ConcurrentHashMap中的相关内容,说明他日常编程中有使用到concurrent包,可以继续聊聊,否则他对…
这个问题是在面试时常问的几个问题,一般在问这个问题之前会问Hashmap和HashTable的区别?面试者一般会回答:hashtable是线程安全的,hashmap是线程不安全的. 那么面试官就会紧接着问道,为什么hashmap不是线程安全的,会造成什么问题么?于是面试者就回答:HashMap在并发情况下的put操作会造成死循环. 这时候就会被面试官问:HashMap在并发为什么造成死循环? 很多面试者这时候就会一脸懵.没有过相关经验和深入的理解源码是很难回答这个问题的. 下面我们就通过HahM…
如何计算,一对key/value应该放在哪个哈希桶 大家都知道,hashmap底层是数组+链表(不讨论红黑树的情况),其中,这个数组,我们一般叫做哈希桶,大家如果去看jdk的源码,会发现里面有一些变量,叫做bin,这个bin,就是桶的意思,结合语境,就是哈希桶. 这里举个例子,假设一个hashmap的数组长度为4(0000 0100),那么该hashmap就有4个哈希桶,分别为bucket[0].bucket[1].bucket[2].bucket[3]. 现在有两个node,hashcode分…
PS:不得不说Java编程思想这本书是真心强大.. 学习内容: 1.HashMap<K,V>在多线程的情况下出现的死循环现象   当初学Java的时候只是知道HashMap<K,V>在并发的情况下使用的话,会出现线程安全问题,但是一直都没有进行深入的研究,也是最近实验室的徒弟在问起这个问题的原因之后,才开始进行了一个深入的研究.   那么这一章也就仅仅针对这个问题来说一下,至于如何使用HashMap这个东西,也就不进行介绍了.在面对这个问题之前,我们先看一下HashMap<K…
1.多线程put操作后,get操作导致死循环. 2.多线程put非null元素后,get操作得到null值. 3.多线程put操作,导致元素丢失. 死循环场景重现 下面我用一段简单的DEMO模拟HashMap死循环: 1 public class Test extends Thread 2 { 3 static HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(2); 4 static AtomicInteg…
在有安全验证的情况下做单元测试Test 版本信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.14.RELEASE</version> <relativePath/> <!-- lookup parent from…
2016年12月29日14:29:27 参考原文:http://jingyan.baidu.com/article/90808022a6c6b7fd91c80fc8.html 在不损坏磁盘的情况下给某盘扩容,有一个原则: 此处,自己总结为[相邻向右扩]或者[相邻向下扩] 比如给D盘扩容,那就只能从与它相邻的磁盘着手,比如E盘紧邻着D盘,而且在D盘的下一个盘符(或右侧)位置, 图中显示的是F盘在D盘右侧,这跟我个人电脑有关,不过没关系,,意思知道就好了!!! 所以,要给D盘扩容的话,必须先删除它的…
http://ideapad.zol.com.cn/55/160_549015.html 很多朋友跟我一样,转到windows 7 64bit后,发现以前所谓的35GB理论不够用了,哪怕你不把任何程序文件安装在C:盘,而且还天天使用什么"360安全卫士"跟"金山卫士"清理垃圾,但是C:盘还是一天天少去,最后会在所谓的7GB左右徘徊!那么请问在这个背后发生了什么呢? c盘只剩下6.84GB了 其实我们现在打开C:盘,然后把隐藏文件和系统保护文件打开后,就会发现,然后是…
VirtualBox下扩容vdi文件 版本:VirtualBox 5.0.14 之前VirtualBox创建的虚拟机的vdi文件过小,无法满足新的实验需求,扩容vdi文件的方法如下: 比如我这里将RHEL6_Primary12cRAC2.vdi文件扩容到60000M大小,方法如下: VBoxManage modifyhd E:\Vbox\Primary12cRAC2\RHEL6_Primary12cRAC2.vdi --resize 60000 实际执行过程: c:\Program Files\…
参考: Resizing a VirtualBox Disk Image (.vmdk) on a Mac Mac环境下扩容 .vmdk 镜像容量 在安装虚拟机时,原有的vmdk镜像容量只有20G,在实验过程中占用了所有磁盘容量(19.3G),导致虚拟机断电,无法工作: 解决方法有几种,一种是直接重装虚拟机,这种方法简单粗暴但是耗时长: 其次是通过扩容 .vmdk 镜像容量,增大内存,这种方法是将 .vmdk 克隆为 .vdi 文件,扩容 .vdi 文件,最后转换回 .vmdk: # Clone…