IDEA中的Debug模式的使用

测试代码

public static void main(String[] args) {
    hello();
    Map<String, Object> map = new HashMap<String, Object>();

    map.put("1", "1111");
    System.out.println(map);
    System.out.println(map);
    map.containsKey("1");
}

private static void hello(){
    System.out.println("hello");
}

都打上断点如下:
IDEA中的Debug模式的使用_第1张图片
点此开始debug
在这里插入图片描述
自动跳到断点处,并且在断点之前会有数据结果显示
IDEA中的Debug模式的使用_第2张图片
操作说明

名称 快捷键 说明
Step Over F8 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内,跳到下一条执行语句
Step Into F7 进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则会进入该内嵌的方法中
Force Step Into Alt + Shift + F7 强制进入某个其它类的方法、F7进不了的方法、它都能进
Step Out Shift + F8 跳出该方法,回到原来地方
Resume Program F9 跳出到下一个断点

问题:什么方法F7进入不了?
请在IDEA中查看File (menu) -> Settings -> Build, Execution, Deployment -> Debugger -> Stepping -> Do not step into the classes中的配置。如下:
IDEA中的Debug模式的使用_第3张图片

进入hello方法中查看执行过程:F7
IDEA中的Debug模式的使用_第4张图片
下一步:F8
IDEA中的Debug模式的使用_第5张图片
这里如果用F7,将直接略过、并不会进入HashMap的构造方法,如果想进入其构造方法,需要使用:Alt + Shift +F7
IDEA中的Debug模式的使用_第6张图片
跳出此方法后回到new HashMap的地方,需要再按一次:Alt + Shift +F7
在这里插入图片描述
回到主代码:
IDEA中的Debug模式的使用_第7张图片
这里才是感兴趣的地方,但是要进入其中,需要使用Alt + Shift +F7进入该类的方法其中:
在这里插入图片描述
但是在进入putVal前会先计算hash()、也就是先进入hash()这个本类的方法,所以F7后会进入hash()。
在这里插入图片描述
IDEA中的Debug模式的使用_第8张图片
回到put后,再按F7将进入putVal,如下:
在这里插入图片描述
resize()啊,一定要去看一下,F7:
IDEA中的Debug模式的使用_第9张图片
这些数据一目了然、看源代码的神器!!
先退出这一系列方法到main函数:Shift + F8
IDEA中的Debug模式的使用_第10张图片
如果我想略过其中的system.out.pringln,直接到达下一个断点,F9即可:
IDEA中的Debug模式的使用_第11张图片
基本的使用方法如上所述。

你可能感兴趣的:(工具使用,Java)