【肥朝】看源码,我为什么推荐IDEA?
本文并不评论Eclipse与IDEA孰好孰坏,但是由于肥朝平时都是使用IDEA开发的,所以推荐IDEA.这个和肥朝平时都是吃粤菜,所以推荐的都是粤菜为主,但是并不是说其他菜不好吃,肥朝不挑食!
1.条件断点
看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按了数十下之后.才找到自己想debug的值.这样效率不高
比如下文这个
@Test
public void testList() throws Exception {List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);for (Integer integer : list) {System.out.println(integer);}
}
复制代码
如果你想debug数字10这种情况,如果你不知道条件断点,那么你可能要一直点9次跳过.我们来看一下条件断点的使用
这样,就只有满足条件的时候才会进入断点了,告别无效的小手一抖
!
2.强制返回值
比如SpringBoot中这个打印Banner的.我们想调试多种情况.就可以利用这个Force Return
,这样方便我们调试源码中的多种分支流程
3.模拟异常
在做业务开发中,我们有时需要模拟某个方法抛出异常,看看自己的代码是不是像肥朝一样可靠得一逼.但是你每次去写死一个异常,然后再删掉,这种低效的方式有违极客精神.那么我们如果让一个方法抛出异常呢?
不过要注意的一点是,这个功能印象中是IDEA 2018年以后的版本才有的功能.
4.Evaluate Expression
比如我们看源码时遇到这个一个场景,这里有一个byte[]
,但是我们就想看一下这个的值到底是啥.
那么我们可以这么操作一波
这个功能的使用场景非常的广,通过这个功能,可以在看源码时,给某个变量赋我们要想的值,从而改变代码的分支走向等等.总之,这个是肥朝看源码中,使用频率最高的功能之一.更多场景,等待老司机们自己调教!
5.toString的坑(重点)
相信看过Dubbo源码的朋友都会遇到过这个一个坑.也就是你把断点打在下面图示的第一个箭头的时候,是无法进入init()
方法的.但是你把断点打在第二个箭头也就是init()
方法的时候,是能进入的.曾经也有不少人问过这个问题.
当然除了这个坑之外,也有类似的坑,如下
所以这个idea的默认设置.建议在一定条件下还是关闭
本文仅为冰山一角,上百篇原创干货还在路上,扫描下面二维码关注肥朝,让天生就该造火箭的你,不再委屈拧螺丝!
【肥朝】看源码,我为什么推荐IDEA?相关推荐
- 看源码,我为什么推荐IDEA?
作者:肥朝,来自:肥朝(ID:feichao_java) 1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情 ...
- idea 这么还原debug_看源码,我为什么推荐IDEA ?
1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按 ...
- IDEA看源码的几个小技巧
本文公众号来源:肥朝 本文作者:肥朝 Get到了几个在IDEA下看源码/Debug小技巧,之前一直没注意到这些小技巧,感觉还是很有用的,分享一下. 1.条件断点 看源码的时候,经常遇到这个情况, ...
- 4月,诚邀你参加源码共读,学会看源码,打开新世界!开阔视野
大家好,我是若川.很多关注我的新朋友可能不知道我组织了源码共读活动~ 也有很多人不知道我是谁.有人以为我是80后.有人以为我是全职自媒体等等.若川的 2021 年度总结,弹指之间 这篇文章写了我是16 ...
- 找准切入点,调试看源码,事半功倍
关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习 最近写了很多源码分析相关的文章,React.Vue 都有,想把我阅读源码的一些心得分享 ...
- 说下自己看源码的一点经验(Python Web 相关)
开发多了,工具用多了,难免会对一些库的源码感到好奇,想知道怎么里面都用了些什么技巧.知识.但是很多时候,我们会感觉到无从下手,下面我说下自己的一点点经验. 首先,要看的肯定是我们工作中经常用到的库,这 ...
- JAVA要不要看源码_为什么要看源码、如何看源码,高手进阶必看
作者:xybaby www.cnblogs.com/xybaby/p/10794700.html 由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源 ...
- 专治不会看源码的毛病--spring源码解析AOP篇(2017版)
昨天有个大牛说我啰嗦,眼光比较细碎,看不到重点.太他爷爷的有道理了!要说看人品,还是女孩子强一些.原来记得看到一个男孩子的抱怨,说怎么两人刚刚开始在一起,女孩子在心里就已经和他过完了一辈子.哥哥们,不 ...
- 为什么要看源码、如何看源码,高手进阶必看
由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源码这两个问题的思考. 看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过&q ...
最新文章
- 解决该死的双硬盘蓝屏(错误代码:0x00000007b)!
- 【2016-05-19】一次tomcat频繁挂掉的问题定位
- 053_Unicode字符官方标准四
- 将客户端图片保存到数据库中的方法
- APUE读书笔记-第15章-进程间通信
- 用最快速度,打造「最强 Webpack 前端工具链」,强势运行
- 转:如何在 LoadRunner 脚本中做关联 (Correlation)
- 浅谈高斯消元的实现和简单应用
- 11.4 Daily Scrum
- 记模拟面试日记2(更新...)
- Web之路笔记之三 - 使用Floating实现双栏样式
- pythonpm2.5空气质量提醒_Python实现抓取城市的PM2.5浓度和排名
- Python微博评论进行情感分析
- SDUT 3337 计算长方体、四棱锥的表面积和体积
- 2021-2027全球与中国自动卡车装卸系统市场现状及未来发展趋势
- mysql客户端用什么 知乎_知乎面试记
- [渝粤教育] 西南科技大学 电子信息工程专业导论 在线考试复习资料
- 计算机一级基础及msoffice应用,全国计算机等级考试教程一级计算机基础及MS Office应用...
- linux系统管理及配置
- python语言幂运算符号_python的基础运算符号
热门文章
- C语言 va_arg 宏 - C语言零基础入门教程
- jq之animate() left font
- linux 两块硬盘 分区,linux 两块硬盘分区,这个是什么/dev/mapper/VolGroup00-LogVol00
- linux基础命令下载,Linux基础命令教程豪华版
- java中死锁_关于java中死锁的总结
- 2020计算机考研只考数据结构的学校,【择校必看】十三所计算机专业课只考数据结构的985院校!...
- postgresql存图片字段类型_PostgreSQL 入门
- 苹果app商品定价_【知乎问答】苹果 App Store 新推出的 1 元或 3 元定价对开发者有什么影响?...
- 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...
- spring兼容mysql_springboot 最新版本支持 mysql6.0.6吗