有人可以告诉我,为什么调试器没有在堆栈帧中显示变量j
(使用IntelliJ IDEA)?
for (int i = 0 ; i < 10; i++) {
int j = 100;
}
当i = 0
,变量j
应该被创建一次,然后从堆栈中删除,然后i = 2
时,j应该被加载到堆栈中,但是IntelliJ调试工具却没有。一次没有显示j
的创建,问题出在哪里?谢谢
屏幕截图:
有一个工具,请尝试https://cscircles.cemc.uwaterloo.ca/java_visualize/#
答案 0 :(得分:3)
不使用此变量,javac
编译器通过完全删除字节码来优化它。您可以为变量添加一些用法,例如将其记录为System.out
,然后应该可以在调试器中看到它。