idea简单调试

1.行断点

是一个小红原点
然后,在main方法中点击调试,程序运行时会在该点停顿,点击
恢复程序就会继续运行

2.详细断点 | 源断点
shift+左键唤出断点

是一个小黄圆点,并且有一些信息
若点击挂起再点完成,将会变为小红圆点
点击调试,控制台给出断点位置
3.方法断点
是一个小方块,会在方法的第一行停顿
不知道接口的方法对应的是哪个实现类时,可以在接口的类声明处加断点运行
4.异常断点
调用调试面板的快捷键
shift+ctrl+F8
可以添加异常断点
不用加断点,直接调试,会显示出异常断点的位置,一定要记得添加异常断点才能显示

5.字段断点 | 读写监控
会跟踪你加断点的字段的值变化轨迹


public class Test {
    //行断点
    public static void line(){
        System.out.println("this is the line break point");
    }
    //详细断点(源断点)
    public static void detailLine(){
        System.out.println("this is the detail line break point");
    }

    //方法断点  | 接口跳转实现类
    public static void method(){//方法的签名
        System.out.println("this is from method");
        IService iservice=new IServiceImpl();
        iservice.execute();
    }


    //异常断点  |  全局捕获

    //调用调试面板
    //shift+ctrl+F8
    //添加异常断点
    public static void exeception(){
        Object o=null;
        o.toString();
        System.out.println("this line will never be print!");
    }


    //字段断点  | 读写监控
    public static void field(){
        Person p=new Person("field",10);
        p.setAge(12);
        System.out.println(p);
    }


    public static void main(String[] args) {
        //line();
        //detailLine();
        //method();
        //exeception();
        //field();
    }
}


接口

```plaintext
package com.dao;
//这是一个接口
public interface IService {
    //里面只写抽象的方法名
    //在这里打断点,会跳到对应的实现类
    void execute();
}


接口的实现类
```plaintext
package com.dao;
//这是接口的实现类
//有一个关键字implements表示继承
public class IServiceImpl implements IService {
    @Override
    //一个标志表示重写
    //接下来就写接口方法里面的内容
    public void execute(){
        System.out.println("method executed");
    }
}

一个类
```plaintext
package com.dao;

public class Person {
    private String name;

    //监控整个声明周期值的变化
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Person{name = " + name + ", age = " + age + "}";
    }
}

posted @ 2024-12-15 17:15  f-52Hertz  阅读(0)  评论(0编辑  收藏  举报