提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!!
自从 Java 8 开始,作为程序员的我们都离不开 Stream 相关功能的使用。但总是有一些时候,我们对 stream 的操作所要的结果和预期不符,这就需要我们逐步调试,定位问题。
在对应stream流代码位置,打上断点
点击debug方式运行,点击trace current stresm chain按钮可以追踪stream流数据的流转过程!
当运行到第二个断点时,trace current stresm chain按钮为黑色,点击无效,此时我们可以用表达式方式进行调试, 具体表达式大家可根据实际情况书写!
有些时候,我们查看源码时,类中的某个字段的值到底是在哪里改变的,你要一点点追踪调用栈,逐步排查,稍不留神,就可能有遗漏
我们可以在 IntelliJ IDEA 中为某个字段添加断点,当字段值有修改时,自动跳到相应方法位置
- 在字段定义处鼠标左键添加断点(会出现「眼睛」的图标)
- 在「眼睛」图标上鼠标右键
- 在弹框中勾选上 Field access 和 Field modification 两个选项
点击debug方式运行, 代码停顿在字段断点位置,点击放行按钮,代码进入到修改字段的位置,如下图所示:
在测试一个事务方法的回滚是否生效时,我们就需要在代码里加一个异常,这种方式两个缺点就是:一你可能会忘记删除该异常代码(别不信),二是麻不麻烦?
在debug时走到断点处右键Frames下面的代码行,然后选择 Throw Exception
比如有一个很大的for循环,比如我们要看当i=1000时的情况,如果要一步一步的点,得点一千次,那么你就可以通过右击左侧断点,然后写上你的条件即可
写完条件done之后,下一次断点就会直接运行到i=1000的时候暂停。
同样,我们只看偶数的时候,可能直接通过i%2==0的条件放在里面
人嘛,有时候总会手贱一下,比如我本来想在第一个断点就暂停查看的,结果手一抖点快了,直接跑到第二个方法了,这时咱们就能用到回退功能了。
在下图中的Frames里选中处右键,先择drop frame(我的idea版本是Reset Frame):
drop之后会发现当前栈信息被丢弃, 控制台信息恢复到上级方法栈 , 此时断点被回退
在启动jar包时加入jvm参数
以下是不同版本jdk加的参数
按照如下方式配置
启动远程服务器上的服务
点击idea上的debug按钮开始调试
将断点打到要调试的位置, 请求服务器上的服务, 即可在本地代码断点处进行调试
按住alt键, 鼠标左键下拉会进入列编辑模式, 然后结合ctrl shift 等键组合, 即可实现列的跳转, 选中等操作(这里不做具体组合键的整理, 因为windows和mac操作略有区别, 大家可以自行百度)
针对一组可搜索的且不是对齐的字符串进行列编辑