IDEA中的Debug模式的使用
测试代码public static void main(String[] args) { hello(); Map<String, Object> map = new HashMap<String, Object>(); map.put("1&qu
测试代码
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");
}
都打上断点如下:

点此开始debug

自动跳到断点处,并且在断点之前会有数据结果显示

操作说明
| 名称 | 快捷键 | 说明 |
|---|---|---|
| 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中的配置。如下:

进入hello方法中查看执行过程:F7

下一步:F8

这里如果用F7,将直接略过、并不会进入HashMap的构造方法,如果想进入其构造方法,需要使用:Alt + Shift +F7

跳出此方法后回到new HashMap的地方,需要再按一次:Alt + Shift +F7

回到主代码:

这里才是感兴趣的地方,但是要进入其中,需要使用Alt + Shift +F7进入该类的方法其中:

但是在进入putVal前会先计算hash()、也就是先进入hash()这个本类的方法,所以F7后会进入hash()。


回到put后,再按F7将进入putVal,如下:

resize()啊,一定要去看一下,F7:

这些数据一目了然、看源代码的神器!! 先退出这一系列方法到main函数:Shift + F8

如果我想略过其中的system.out.pringln,直接到达下一个断点,F9即可:

基本的使用方法如上所述。