我们创建一个叫做DebugDemo的class并输入以下代码来作为调试内容。
public class DebugDemo {
public static void main(String[] args) {
int a = 1;
int b = a + 10;
a = b++;
System.out.println("hello debug");
for (int i = 0; i < 3; i++) {//循环
System.out.println("我是第" + i);
}
sayGood();//方法
System.out.println("Good JAVA");
}
public static void sayGood() {
System.out.println("good1");
System.out.println("good2");
System.out.println("good3");
}
}
我们可以发现该代码的编译结果是
在需要排查的行号旁打上断点(双击左键,本次在第七行添加断点),然后我们找到project下方的“小昆虫”或者单机右键找到"Debug As——Java application"进行计算机故障排除。
以上为Debug专用试图,接下来给出一些专用快捷键以供参考:F6(F6代表单步执行,顾名思义为一步一步让程序向下执行,值得注意的是,F6遇到方法时会将方法当成一条语句执行),点击F6之后,程序会从断点开始逐步向下运行。
点击三次F6之后出现如图结果,编译器计算完"a"和"b"的值并顺利输出"hello debug",继续F6不难发现,此时编译器将进入"for循环"完成三次循环输出。
当我们继续点击F6时,其经过方法sayGood时,good1,good2,good3被一起输出,
那么如果bug在方法语句中我们该如何精准找出呢,有什么方法可以让方法语句单句执行呢?答案是F5(F5可以进入自定义方法和jdk所提供的方法),当F5进入方法后,便可以由F6单句执行。即让good1,good2,good3依次输出,为我们找到计算机故障提供帮助。除此之外,我们还可以利用F7(单步执行程序,从当前方法跳出)与F8(直接执行程序。遇到断点时暂停)进行高效率跳转。以此为例,我们在第十九行再添加一个断点,再进行Debug时,程序会自动运行到第十九行并暂停。
总结:Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通俗的说,学会Debug,对我们日后代码编译有巨大帮助,它可以快速帮我们找到错误,大大缩短我们检查代码安全的时间。