如图1是我的传参,但进入HashMap源代码时显示的是D:\pac\JDK1.8\jre\bin\instrument.dll,为什么会这样呢,如何显示正确传参
我测试了下面的代码:
分别在这四个位置打了断点以监控程序的运行情况,debug后,进入第一次断点的位置为:
与题主说的情况一致,而没有进入我的第一个断点进行输出,而后F9:
发现还是在put文件,经多次F9之后,可以看出来,其实java的jvm在启动的时候,在底层也自行调用的put方法,将jvm所需要的一些动态库、jar包put到某个map之中,具体是哪个map看不出来。要等到jvm底层将所有东西准备好后,才进行main函数。
jvm准备需要put多少次我就不数了,现在我先把put的断点取消,让程序debug到我的第一个断点处:
这个时候将put方法打上断点,F9发现:
奇怪的key值增加了,它将我的classes编译目录丢进去了,继续F9,和上一步差不多,再再次F9,终于来了:
继续F9,终于到达了我的第二个断点:
继续F9,这次没有put奇怪的东西了:
继续:
最后:
然后程序退出:
综上,jvm在启动的时候会在程序背后隐式地将一些配置啊什么的通过put方法放到某些地方,不用关心,你遇到的情况是正常的也是正确的
还是不行,Integer,String其它的也都不行。
但是第2个put的时候就传参正常了。比如put(1,"a")不行,但put(2,"b")就可以~
还有用社区版的idea一切正常~
想不通为什么会这样
这么认真的吗,
因为这个显示是idea做的,我个人认为可能是这个版本的软件可能是有问题的
鼠标放在key上呢,是不是正常的