1. 断点调试

断点调试_断点调试

2. 基本介绍

断点调试_断点调试_02

3. 断点调试快捷键 327

F7(跳入) F8(跳过) shift+F8(跳出) F9(resume,执行到下一个断点)

F7: 跳入方法内

F8: 逐行执行代码.

shift+F8: 跳出方法

断点调试_System_03

4. 断点调试应用

4.1 看一下变量变化情况 328

下断点在行号出单击鼠标左键,再次单击则取消

代码在com.stulzl.debug_.包中

package com.stulzl.debug_;

//看一下变量变化情况  328
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("退出for……");
    }
}

代码执行中例图

断点调试_断点调试_04

4.2 看一下数组越界的异常 329

代码在com.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了

断点调试_断点调试_05

断点调试_初始化_06

4.3 如何追源代码 330

进入原码配置

断点调试_断点调试_07

断点调试_断点调试_08

代码在com.stulzl.debug_.包中

package com.stulzl.debug_;

import java.util.Arrays;
//如何追源代码  330
public 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");
        }
    }
}

断点调试_断点调试_09

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");
    }
}

断点调试_断点调试_10

5. 断点调试练习 直接看332

代码在com.stulzl.debug_exercise.包中

package com.stulzl.debug_exercise;

public class DebugExercise01 {
    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) {
         = 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) {
         = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}