笔者一直想搞清楚HashMap插入数据、扩容时的整个过程,看源码没法调试总是不是那么方便,所以就弄了一套可以调试JDK源码的方案。
开发环境:JDK8+Eclipse
说明:调试HashMap的 public V put(K key, V value) 方法并查看key的值时不能显示变量的值,原因在于oracle提供的jre中rt.jar 不带debug信息。
orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar的大小。若想正常调试jdk,就只能重新编译src.zip。当然也可以只编译单个需要关注的java即可,例如HashMap.java,步