资料来源于韩老师视频
(一)初探debug
1、打断点的话:直接在该行前面单击左键,出现小红点就是断点了。
想要取消断点的话,再单击小红点即可。
运行debug时,右键选择"Debug…"而不是选“Run…”
2、(1)随后进入到debug界面,从左到右依次是:
逐行执行、进入到方法体内、强制进入到方法体内、跳出方法。
(2)这个标记表示:从该断点直接执行到下一个断点
当然,我们可以在debug执行的过程中动态地添加新断点。
(3)这个标记表示:停止debug
3、尝试一下,设置一个断点,然后选择逐行执行代码。
“Debugger”是当前变量值的反映,如果想看当前输出什么,选它旁边的Console。
当然,其实在我们每次逐行执行debug的时候,变量代码的边上就会出现当前该变量的值,可以直观地观察到。
该案例断点调试结束。
(二)数组越界案例
1、我们的代码是:
本来只能访问到arr.length-1的下标,我们这里让它等于。
2、逐行执行后,报错结果如下:
(1)出现.ArrayIndexOutOfBoundsException: 3:即索引越界,索引不能等于3。(因为我们数组下标最后一个才到2)
(2)main(debug02.java:9):表示错误在第9行代码。
(三)追踪源码
1、我们写的代码:
2、现在需要追踪sort()源码怎么写的:
(1)先配置:
(2)在sort这句代码前面打断点。
(3)右键debug运行后,点“step into”就是下面这个按键进入到方法体:
就能追踪到这:
想进一步追踪,选到sort(a,left,…)这一行,然后点“step into”按键,进入到这:
这就是最终的源码了。
如果查看完想跳回原位置,继续逐行执行代码,按下面这个键(或者shift+F8):
跳出方法体。然后可以执行其他命令了。
3、补充一个小技巧:
查看数组元素值,可以让光标停在数组名上,然后点显示出来的加号。
比如直接查看排序后的arr数组: