断点调试(debug)

断点调试(debug)

介绍:断点调试是指在程序的某一行设置一个断电,调试时,程序运行到这一行就会停住,然后可以一步步往下调试,调试过程中可以看到各个变量当前的值,如果出错的话,调试到出错的代码行就会显示错,进行分析从而找到这个bug。

快捷键:F7(跳入:跳入方法内),F8(跳过:逐行执行代码),shift+F8(跳出:跳出方法),F9(resume,执行到下一个断点)

F8案例代码语言:javascript复制public class Debug01 {

public static void main(String[] args) {

int sum = 0;

for (int i = 0; i <= 3; i++) {

sum += i;

System.out.println("i=" + i);

System.out.println("sum=" + sum);

}

System.out.println("结束循环");

}

} 逐行执行代码

遇到输出语句会挨个输出

循环执行完后就会执行后面的语句

直到该程序所有语句全部执行完就会自动跳出

debug过程中报错

代码语言:javascript复制public class Debug02 {

public static void main(String[] args) {

int[] arr = {1, 2, 3};

for (int i = 0; i <= arr.length; i++) {

System.out.println(arr[i]);

}

System.out.println("循环结束");

}

}用debug查看方法源码

代码语言:javascript复制import java.util.Arrays;

public class Debug03 {

public static void main(String[] args) {

int[] arr = {1, -1, 2, -2, 10, 5};

Arrays.sort(arr);

for (int i = 0; i < arr.length; i++) {

System.out.print(arr[i] + "\t");

}

}

}两种方法:

(1)在不做任何操作的情况下按F7并没有进入该方法的源码

在设置中将如下两条语句取消勾选即可F7

(2)alt + shift + F7强制进入

一层一层查看 Arrays.sort()方法F9断点可以在debug过程中,动态的下断点

按下F9键,会直接跳转到下一个断点处,并且将第二个断点前的语句全部执行

也可以不断地继续去动态增加断点,进行测试

DebugExercise使用断点调试,追踪下一个对象创建的过程

创建对象的流程

(1)加载Person类信息

(2)初始化 默认初始化 -> 显示初始化 -> 构造器初始化

(3)返回对象地址

代码语言:javascript复制public class DebugExercise {

public static void main(String[] args) {

Person person = new Person("周小末", 18);

System.out.println(person);//默认调用toString

}

}

class Person {

private String name;

private int age;

public Person(String name, int age) {

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

}(1)debug查看加载Person类信息

从创建person对象处F8,会直接到Person类中的构造器

一直进行,会在构造器执行完后返回 System.out.println(person);

(2)debug查看System.out.println(person); 中的person有没有调用toString方法

然后继续alt+shift+F7 String.valueOf(x)

如果obj不为空,则调用obj中的toString方法 ,又因为obj的运行类型是Person

所以就会直接进入到Person类中的toString方法

代码语言:javascript复制

相关文章

路由器中继怎么用?详细教程及设置方法
365betapp投注

路由器中继怎么用?详细教程及设置方法

📅 09-22 👁️ 4263
客户产品如何分类管理
365bet备用开户

客户产品如何分类管理

📅 06-27 👁️ 3858
如何使用UltraISO将光盘中的内容提取为ISO镜像
365bet备用开户

如何使用UltraISO将光盘中的内容提取为ISO镜像

📅 10-22 👁️ 2854
[心得分享]论坛下载附件所需积分(免费获取)
365bet备用开户

[心得分享]论坛下载附件所需积分(免费获取)

📅 02-03 👁️ 7329
正在阅读:电脑home键意思详细介绍【详解】电脑home键意思详细介绍【详解】
2025蛋糕店10大品牌排行榜【最新名单公布】
盒子365app下载

2025蛋糕店10大品牌排行榜【最新名单公布】

📅 08-07 👁️ 3270