作者:肥朝,来自:肥朝(ID:feichao_java)

1.条件断点

看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按了数十下之后.才找到自己想debug的值.这样效率不高

比如下文这个

1@Test2public void testList() throws Exception {3    List<Integer> 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的默认设置.建议在一定条件下还是关闭

架构师小秘圈

聚集20万架构师的小圈子

长按二维码 ▲

关注「架构师小秘圈」公众号

看源码,我为什么推荐IDEA?相关推荐

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

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

  2. idea 这么还原debug_看源码,我为什么推荐IDEA ?

    1.条件断点 看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按 ...

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

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

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

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

  5. 说下自己看源码的一点经验(Python Web 相关)

    开发多了,工具用多了,难免会对一些库的源码感到好奇,想知道怎么里面都用了些什么技巧.知识.但是很多时候,我们会感觉到无从下手,下面我说下自己的一点点经验. 首先,要看的肯定是我们工作中经常用到的库,这 ...

  6. JAVA要不要看源码_为什么要看源码、如何看源码,高手进阶必看

    作者:xybaby www.cnblogs.com/xybaby/p/10794700.html 由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对为什么要看源码.如何看源 ...

  7. 专治不会看源码的毛病--spring源码解析AOP篇(2017版)

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

  8. IDEA看源码的几个小技巧

    本文公众号来源:肥朝    本文作者:肥朝 Get到了几个在IDEA下看源码/Debug小技巧,之前一直没注意到这些小技巧,感觉还是很有用的,分享一下. 1.条件断点 看源码的时候,经常遇到这个情况, ...

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

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

最新文章

  1. cocos2d-x解决中文乱码问题的几种办法
  2. C# 字符串大小写混合转换(同时进行)
  3. Some Experience about userControls
  4. mysql test 映射到实体_从零搭建SpringBoot+MyBatis+MySQL工程
  5. Success Rate CodeForces - 807C (数学+二分)
  6. docker mysql日志_面试官问:了解Mysql主从复制原理么?我呵呵一笑
  7. python2.7安装sqlite3模块
  8. ui曲线谁是横坐标_【鼎阳硬件智库原创 | 测试测量】关于示波器的幅频特性曲线...
  9. 05SpringMvc_映射器SimpleUrlHanderMapping
  10. 【译】如何写出一份优秀的软件设计文档
  11. 《DSP using MATLAB》示例Example4.2
  12. 网格交易法——震荡行情的必杀技交易策略
  13. 文献速递 | 通过m6A RNA甲基化修饰调节癌症中的端粒稳态和基因组稳定性
  14. Telink 825x 蓝牙开发笔记1
  15. Jupyter notebook使用类错误提示 takes no arguments
  16. .md文件中插入本地图片并显示图片预览
  17. 智能养老手环能够防止老年人出现安全意外
  18. 通信系统原理[郭宇春]——信号与噪声——课后习题答案
  19. MDC是什么鬼?用法、源码一锅端
  20. LM2576在嵌入式系统中的应用

热门文章

  1. 线段树合并与分裂维护树上最长上升子序列 + 点分治删点 ---- 2021 牛客多校第一场 C - Cut the tree(详解)
  2. 利用栈求表达式的值_高一数学月考考点之函数的表达式详解
  3. 深入jvm虚拟机第4版_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
  4. arcgis自动完成面怎么用_硬派的自然断裂面石材怎么用才美?
  5. C语言入门练习 - 第一期 变量、输入输出、表达式与顺序语句(题解)
  6. 计算机硬件系统公开课课件,计算机硬件系统的组成(公开课).ppt.ppt
  7. c语言上机指导实验7,[C语言程序设计上机指导与同步训练(刘迎春张艳霞)]实验7.pdf...
  8. django mysql orm教程_带你了解Django ORM操作(基础篇)
  9. 此时不应有java_Java 锁的知识总结及实例代码
  10. 单摆运动属于什么现象_在学习高中物理中有什么好的经验可以分享?