aiaifa,萧小m直播间,血钻野燕麦官方网站
目录
看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后f5进入方法,f6跳过方法,f7跳出方法。但是不知道大家有没有注意到,如果你跟踪到的是jdk源码的话,比如hashmap
的put
方法,即使你f5进入到这个方法的内部了,你也看不到你put的 key 和 value 的实际值。但是我们既然要跟踪源码,那么肯定要看到我们设置的 key 和 value 是如何历经九九八十一难才进入到 hashmap
这个桶之中的。为什么说是桶,大家有兴趣的可以自己去深入了解一下hashmap,这里我就不做过多的介绍了。
这是我们跟踪源码看到的情况:
这是我们想要看到的情况:
接下来就是今天的正题了
首先我们要知道一个jar也就是rt.jar
, 它是java基础类库,也就是你在java doc里面看到的所有的类的class文件,但是 orcale
在编译jdk源码的时候为了减小jar包的大小,使用的是 javac -g:none
也就是不带任何的调试信息。这就是我们跟踪jdk源码但是看不到变量值的罪魁祸首,但是上帝在给你关了一扇门的同时也会给你开一扇窗的。那么我现在就来带你一下这扇窗是怎么打开的。
上面这张图是jdk安装目录,可以看到这个有个src.zip
,它就是今天的主角:jdk源码,你可以把它解压出来看一下里面的内容,其实就是一个个的java类。
src-->右键-->选择export
finish
就可以了。至此我们就完成第一步了。window-->preferences
,找到installed jres
, 选择你使用的jdk点击edit
进行编辑。add external jars
选择我们刚刚编译好导出的那个jar包。红色的jar就是我们自己导出的jar,我们要将我们导出的jar往上移,移到蓝色的 rt.jar
上面。然后finish
将我们编译的jar和src.zip进行关联。选择jre system library
找到里面我们编译的jar, 右键-->propertites。
propertites
选择 external file...
找到我们最开始的src.zip并选择它。然后aplly
ok
。一切结束。
现在你就可以愉快的跟踪源码,看看你的变量是怎么在java
的世界中遨游了。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论