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 ?相关推荐

  1. 看源码,我为什么推荐IDEA?

    作者:肥朝,来自:肥朝(ID:feichao_java) 1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情 ...

  2. 为什么要看源码、如何看源码,高手进阶必看

    由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源码这两个问题的思考. 看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过&q ...

  3. 4月,诚邀你参加源码共读,学会看源码,打开新世界!开阔视野

    大家好,我是若川.很多关注我的新朋友可能不知道我组织了源码共读活动~ 也有很多人不知道我是谁.有人以为我是80后.有人以为我是全职自媒体等等.若川的 2021 年度总结,弹指之间 这篇文章写了我是16 ...

  4. 若川诚邀你加源码共读群,帮助更多人学会看源码~

    小提醒:若川视野公众号面试.源码等文章合集在菜单栏中间[源码精选]按钮,欢迎点击阅读,也可以星标我的公众号,便于查找. 回复pdf,可以获取前端优质书籍. 最近我创建了一个源码共读的前端交流群,希望尝 ...

  5. 找准切入点,调试看源码,事半功倍

    关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习 最近写了很多源码分析相关的文章,React.Vue 都有,想把我阅读源码的一些心得分享 ...

  6. 11没有源码注释_我们为什么要看源码、应该如何看源码?

    看源码的意义 看源码只是一种方法.手段,而不是目的.我也曾经给自己制定过"阅读xxx源码"的目标,现在看起来真的很蠢,一点不smart(specific.measurable.at ...

  7. 【肥朝】看源码,我为什么推荐IDEA?

    本文并不评论Eclipse与IDEA孰好孰坏,但是由于肥朝平时都是使用IDEA开发的,所以推荐IDEA.这个和肥朝平时都是吃粤菜,所以推荐的都是粤菜为主,但是并不是说其他菜不好吃,肥朝不挑食! 1.条 ...

  8. 面试官问我平时怎么看源码的,我把这篇文章甩给他了。

    本文来自作者投稿,原作者:WwpwW 1.1,为什么要分析源码? 分析源码可以培养一下自己独立思考问题的能力(愿意读源码找问题的能力),最重要的是我们不用再买纸质书去学习数据结构了,数据结构的应用都在 ...

  9. Spring AOP源码解析——专治你不会看源码的坏毛病!

    昨天有个大牛说我啰嗦,眼光比较细碎,看不到重点.太他爷爷的有道理了!要说看人品,还是女孩子强一些. 原来记得看到一个男孩子的抱怨,说怎么两人刚刚开始在一起,女孩子在心里就已经和他过完了一辈子.哥哥们, ...

最新文章

  1. 监控摄像头服务器维护要多久,监控摄像机如何维护 这几点要牢记
  2. 最大值(3.3)(java)
  3. 关于外挂新手最常见的30个问题
  4. java epoll select_Java后端常见面试题
  5. BZOJ 2879 美食节(费用流-动态加边)
  6. 开放下载!《阿里云实时数仓Hologres最佳实践合集》
  7. GPS系统研发人员面试题(VC通讯)
  8. servle 3.0 新特性之一 对上传表单的支持
  9. matlab impyramid图像金字塔
  10. “” '' ``区别 初学者自用
  11. Libevent源码分析-----TAILQ_QUEUE队列
  12. Linux不仅仅是开源
  13. 哈工大人工智能作业一_想从事人工智能行业,考研选什么专业对口?
  14. ibm服务器无显示器,IBM 2128彩色显示器,无论有无连机信号输入均黑屏
  15. access 打印预览 代码_TSC TTP-244条码打印机如何批量打印二维码
  16. fastjson 判断value是对象还是数组
  17. 数学发展史中最重要的4个阶段
  18. php商品分类添加字段,zblogPHP分类模板添加自定义字段(调用UEditor编辑器输入法)...
  19. 【ASUS】win7下安装USB3.0驱动蓝屏死机问题
  20. Cron表达式在线工具

热门文章

  1. Linux的yum指令
  2. 万能笔记本,你值得拥有;(XML)
  3. SQL语言之同义词(Oracle)
  4. jQuery的Growl插件
  5. java set第n位_数据结构与算法——常用数据结构及其Java实现
  6. 爬取虎牙之二:试用htmlunit模拟js爬取ajax页面
  7. 使用jsoup解析html
  8. 常见的算法排序(2)
  9. 【转】Ubuntu Vi编辑器中文乱码问题的解决
  10. python安装了怎么使用_Python PyCharm 安装与简单使用