idea 这么还原debug_看源码,我为什么推荐IDEA ?
1.条件断点
看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按了数十下之后.才找到自己想debug的值.这样效率不高
比如下文这个
1@Test2public void testList() throws Exception {3 List list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);4 for (Integer integer : list) {5 System.out.println(integer);6 }7}
如果你想debug数字10这种情况,如果你不知道条件断点,那么你可能要一直点9次跳过.我们来看一下条件断点的使用
这样,就只有满足条件的时候才会进入断点了,告别无效的小手一抖!
2.强制返回值
比如SpringBoot中这个打印Banner的.我们想调试多种情况.就可以利用这个Force Return,这样方便我们调试源码中的多种分支流程
3.模拟异常
在做业务开发中,我们有时需要模拟某个方法抛出异常,看看自己的代码是不是像肥朝一样可靠得一逼.但是你每次去写死一个异常,然后再删掉,这种低效的方式有违极客精神.那么我们如果让一个方法抛出异常呢?
不过要注意的一点是,这个功能印象中是IDEA 2018年以后的版本才有的功能.
4.Evaluate Expression
比如我们看源码时遇到这个一个场景,这里有一个byte[],但是我们就想看一下这个的值到底是啥.
那么我们可以这么操作一波
这个功能的使用场景非常的广,通过这个功能,可以在看源码时,给某个变量赋我们要想的值,从而改变代码的分支走向等等.总之,这个是肥朝看源码中,使用频率最高的功能之一.更多场景,等待老司机们自己调教!
5.toString的坑(重点)
相信看过Dubbo源码的朋友都会遇到过这个一个坑.也就是你把断点打在下面图示的第一个箭头的时候,是无法进入init()方法的.但是你把断点打在第二个箭头也就是init()方法的时候,是能进入的.曾经也有不少人问过这个问题.
当然除了这个坑之外,也有类似的坑,如下
所以这个idea的默认设置.建议在一定条件下还是关闭。
idea 这么还原debug_看源码,我为什么推荐IDEA ?相关推荐
- 看源码,我为什么推荐IDEA?
作者:肥朝,来自:肥朝(ID:feichao_java) 1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情 ...
- 为什么要看源码、如何看源码,高手进阶必看
由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源码这两个问题的思考. 看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过&q ...
- 4月,诚邀你参加源码共读,学会看源码,打开新世界!开阔视野
大家好,我是若川.很多关注我的新朋友可能不知道我组织了源码共读活动~ 也有很多人不知道我是谁.有人以为我是80后.有人以为我是全职自媒体等等.若川的 2021 年度总结,弹指之间 这篇文章写了我是16 ...
- 若川诚邀你加源码共读群,帮助更多人学会看源码~
小提醒:若川视野公众号面试.源码等文章合集在菜单栏中间[源码精选]按钮,欢迎点击阅读,也可以星标我的公众号,便于查找. 回复pdf,可以获取前端优质书籍. 最近我创建了一个源码共读的前端交流群,希望尝 ...
- 找准切入点,调试看源码,事半功倍
关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习 最近写了很多源码分析相关的文章,React.Vue 都有,想把我阅读源码的一些心得分享 ...
- 11没有源码注释_我们为什么要看源码、应该如何看源码?
看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过"阅读xxx源码"的目标,现在看起来真的很蠢,一点不smart(specific.measurable.at ...
- 【肥朝】看源码,我为什么推荐IDEA?
本文并不评论Eclipse与IDEA孰好孰坏,但是由于肥朝平时都是使用IDEA开发的,所以推荐IDEA.这个和肥朝平时都是吃粤菜,所以推荐的都是粤菜为主,但是并不是说其他菜不好吃,肥朝不挑食! 1.条 ...
- 面试官问我平时怎么看源码的,我把这篇文章甩给他了。
本文来自作者投稿,原作者:WwpwW 1.1,为什么要分析源码? 分析源码可以培养一下自己独立思考问题的能力(愿意读源码找问题的能力),最重要的是我们不用再买纸质书去学习数据结构了,数据结构的应用都在 ...
- Spring AOP源码解析——专治你不会看源码的坏毛病!
昨天有个大牛说我啰嗦,眼光比较细碎,看不到重点.太他爷爷的有道理了!要说看人品,还是女孩子强一些. 原来记得看到一个男孩子的抱怨,说怎么两人刚刚开始在一起,女孩子在心里就已经和他过完了一辈子.哥哥们, ...
最新文章
- 监控摄像头服务器维护要多久,监控摄像机如何维护 这几点要牢记
- 最大值(3.3)(java)
- 关于外挂新手最常见的30个问题
- java epoll select_Java后端常见面试题
- BZOJ 2879 美食节(费用流-动态加边)
- 开放下载!《阿里云实时数仓Hologres最佳实践合集》
- GPS系统研发人员面试题(VC通讯)
- servle 3.0 新特性之一 对上传表单的支持
- matlab impyramid图像金字塔
- “” '' ``区别 初学者自用
- Libevent源码分析-----TAILQ_QUEUE队列
- Linux不仅仅是开源
- 哈工大人工智能作业一_想从事人工智能行业,考研选什么专业对口?
- ibm服务器无显示器,IBM 2128彩色显示器,无论有无连机信号输入均黑屏
- access 打印预览 代码_TSC TTP-244条码打印机如何批量打印二维码
- fastjson 判断value是对象还是数组
- 数学发展史中最重要的4个阶段
- php商品分类添加字段,zblogPHP分类模板添加自定义字段(调用UEditor编辑器输入法)...
- 【ASUS】win7下安装USB3.0驱动蓝屏死机问题
- Cron表达式在线工具