1. 断点调试
2. 基本介绍 3. 快捷键的断点调试 327F7(跳入) F8(跳过) shift+F8(跳出) F9(resume,执行到下一个断点)
F7: 跳入方法内
F8: 逐行执行代码.
shift+F8: 跳出方法
4. 4.1断点调试应用 看看变量变化 328下断点在行号单击鼠标左键,再次单击取消
com中的代码.stulzl.debug_.包中
package com.stulzl.debug_;///看变量变化 328public 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("退出for.."; }}
代码执行中例图
4.2 看看数组越界异常 com中有329代码.stulzl.debug_.包中
package com.stulzl.debug_;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"); }}
因为i <= arr.length得了3
4.3 如何追源代码? 330进入原码配置
com中的代码.stulzl.debug_.包中
package com.stulzl.debug_;import java.util.Arrays;///如何追源代码 330public class Debug03 { public static void main(String[] args) { int[] arr = {1, -1, 10, -20 , 100}; 让我们看看 Arrays.sort 底层实现方法.->Debug Arrays.sort(arr);////按f7跳法执行此行 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } }}
4.4 演示执行下一个断点 331
package com.stulzl.debug_;import java.util.Arrays;public class Debug04 { public static void main(String[] args) { int[] arr = {1, -1, 10, -20 , 100}; 让我们看看 Arrays.sort 底层实现方法.->Debug Arrays.sort(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } System.out.println(hello100); System.out.println(hello200); System.out.println(hello300); System.out.println(hello400); System.out.println(hello500); System.out.println(hello600); System.out.println(hello700); }}
5. 断点调试练习 直接看332com中的代码.stulzl.debug_exercise.包中
package com.stulzl.debug_exercise;public class Exercisedebugercise01 { public static void main(String[] args) { /////创建对象的流程信息 /1.加载Person信息 //2.初始化(2.1默认初始化,2.2显示初始化,2.3构造器初始化) //3.返回对象的地址 Person jack = new Person("jack",20); System.out.println(jack); }}class Person{ private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } //重写tostirng @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}