快捷键并非彻底同样的,我这边是MAC安装的IDEA, 这边最主要仍是知道DEBUG时经常使用的功能。java
F7 #进入下一步,若是当前行是一个方法,则进入当前方法体内 F8 #进入下一步,若是当前行是一个方法,则不进入当前方法体内 F9 #跳到下一个断点,若是没有则直接运行结束 Alt + F8 #表达式求值 Alt + F9 #代码会运行至光标行,而不须要打断点 Shift + F8 #跳出进入的方法体,回到上级代码处 Ctrl+Shift+F9 #DEBUG模式运行 Ctrl+F5 #从新运行 Shift+Command+F8 #查看全部断点,为断点添加条件等
第一组ide
(Alt + F10)
:若是你的光标在其它行或其它页面,点击这个按钮可跳转到当前执行的断点。lua
(F8)
:步过,一行一行地往下走,若是这一行上有方法不会进入方法。idea
(F7)
:步入,若是当前行有方法,能够进入方法内部,通常用于进入自定义方法内,不会进入官方类库的方法。debug
(Alt + Shift + F7)
:强制步入,能进入任何方法,查看底层源码的时候能够用这个进入官方类库的方法。3d
(Shift + F8)
:步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是尚未完成赋值。调试
Drop Frame (默认无快捷键)
:回退断点,后面章节详细说明。code
(Alt + F9)
:运行到光标处,你能够将光标定位到你须要查看的那一行,而后使用这个功能,代码会运行至光标行,而不须要打断点。blog
Evaluate Expression (Alt + F8)
:计算表达式,后面章节详细说明。进程
第二组
Rerun 'xxxx'
:从新运行程序,会关闭服务后从新启动程序。
(Ctrl + F5)
:更新程序,通常在你的代码有改动后可执行这个功能。
(F9)
:跳到下一个断点,若是没有则直接运行结束。
Pause Program
:暂停程序,启用Debug。目前没发现具体用法。
(Ctrl + F2)
:连续按两下,关闭程序。有时候你会发现关闭服务再启动时,报端口被占用,这是由于没彻底关闭服务的缘由,你就须要查杀全部JVM进程了。
(Ctrl + Shift + F8)
:查看全部断点。
Mute Breakpoints
:哑的断点,选择这个后,全部断点变为灰色,断点失效,按F9则能够直接运行完程序。
若是你是mac系统你的功能键F1~F12,对于IDEA多是实效的,这里须要相关设置。
可使用这个操做在调试过程当中计算某个表达式的值,好比是否为空,获取其它值的计算,同时它还能够修改属性值。
int age = 10; String name = "小小"; //这里有个判断条件,我想知道age > 5 的计算结果 if (age > 5 && name == null) { System.out.println("age = " + age); }
第一种直接选中age>5
它会直接告诉你计算结果。
第二种经过Alt+F9
输入计算表达式,也会计算结果。
下面age为10,那么age == 18 就为false
这时我经过Alt+F9
修改属性
发现这个属性值已经修改为咱们自定义的18了。
重要
顺便说下若是咱们须要查看一些重要的属性值的变化,那么咱们能够将variables
中的属性添加到Watches
进行先后观察,这样更加直观。好比下面age。
这个通常循环内比较实用,由于咱们在循环体内设置断点,若是没有条件判断那么咱们须要一个一个执行。条件判断就带来很大便利。
在该断点设置条件判断,设置好后该断点上会有个❓
好多时候debug的时候报异常了,若是异常刚好在for里,这个时候你也不能用条件判断打断点,由于不知道用什么条件的打这个断点,这个时候异常断点就颇有用了。
好比下面,并无打上任何断点
设置异常断点
快捷键Shift+Command+F8
点击+号,设置相关异常
运行结果
只要本身变优秀了,其余的事情才会跟着好起来(少将19)