Java程序断点调试与正常运行结果不同

E8RD36C_N8OCIV1KDR@8X]G.png

上图中的程序,正常debug运行时输出name:张三, age:10,但是在打上第28行的断点后debug运行则会输出name:null, age:0,这是为什么呢
————————
有评论说断点没执行。。。上面只是截了个代码,没截跑起来的图,我把调试的截图补上吧
%KG0GQ)V1G@WD2R]UVH)]G4.png
[YPN%E$7A8{PP20TK6$T53X.png

阅读 5.8k
4 个回答

debug 的时候会初始化 nameDisplay 属性,如下图所示
image.png

因为你的toString方法有问题,调用一次,builder初始化了之后就一直返回相同的内容
debug的时候需要调用toString,于是builder被初始化,内容是name:null, age:0,于是后面所有的toString都是name:null, age:0

断点处还没有执行呢...

就是断点处没执行,你没明白他的意思
有个单步执行,你多点几次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题