断点调试介绍与使用案例
在开发中查找错误时,可以用断点调试,一步一步的看源码的执行过程,从而发现错误所在
提示:在断点调试 过程中,是运行状态,是以对象的运行类型来执行的
A extends B;
B b = new A();
b.xx();
此时b对象的运行类型是A
介绍:
1.断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步的往下调试,调试过程中可以看各个变量的值,出错的话,调试到出错的代码即显示错误,停下,进行分析从而找到这个bug
2.断点调试是程序员必须掌握的技能
3.断点调试也能帮助我们查看java底层源代码的执行过程,提高程序员的java水平
断点调试的快捷键:
F7(跳入) F8(跳过) shift + F8(跳出) F9(resume,执行到下一个断点)
F7:跳入方法内 F8:逐行执行代码 shift + F8:跳出方法
案例一:
F8逐行执行:
public class debug01 {public static void main(String[] args) {//演示逐行执行代码int sum = 0;for (int i = 0; i < 5; i++) {sum += i;System.out.println(" i= " + i);System.out.println(" sum= " + sum);}System.out.println("end.......");}
}
通过在要执行的代码行左边点击出现红色圆圈后,即设定好断点,此时鼠标右键代码点击调试,就可以在下方调试器中看到当前各个步骤下每个变量的值,通过控制台可以查看输出信息,在此过程中,按下f8就可以继续一步一步的来执行并查看当前变量的值走到哪一步
案例二:
看一下数组越界的异常:
public class debug02 {public static void main(String[] args) {int arr[] = {1,10,-1};for (int i = 0; i <= arr.length; i++) {System.out.println(arr[i]);}System.out.println("退出for....");}
}
案例三:
演示如何追源码,看看java设计者是怎么实现的:
小技巧:将光标放在某个变量上,可以看到最新的数据
package com.debugLearn.debug;import java.util.Arrays;public class debug03 {public static void main(String[] args) {//debug源码int arr[] = {8,-1,199,70,10};//排序,追入sort的源码Arrays.sort(arr);//查看sort方法执行流程:ctrl+左键或者设置://Setting > build,Execution,Deployment > debugger > Stepping//取消勾选Do not step into the classes 中的ajva.*,javax.*for (int i = 0; i < arr.length; i++) {System.out.println(arr[i] + "\t");}}
}
案例四:
演示如何直接执行到下一个断点 F9 resume:
技巧:断点可以在debug过程中,动态的下断点