【肥朝】看源码,我为何推荐IDEA?

本文并不评论Eclipse与IDEA孰好孰坏,可是因为肥朝平时都是使用IDEA开发的,因此推荐IDEA.这个和肥朝平时都是吃粤菜,因此推荐的都是粤菜为主,可是并非说其余菜很差吃,肥朝不挑食!java

1.条件断点

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

好比下文这个lua

@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次跳过.咱们来看一下条件断点的使用idea

这样,就只有知足条件的时候才会进入断点了,告别无效的小手一抖!spa

2.强制返回值

好比SpringBoot中这个打印Banner的.咱们想调试多种状况.就能够利用这个Force Return,这样方便咱们调试源码中的多种分支流程debug

3.模拟异常

在作业务开发中,咱们有时须要模拟某个方法抛出异常,看看本身的代码是否是像肥朝同样可靠得一逼.可是你每次去写死一个异常,而后再删掉,这种低效的方式有违极客精神.那么咱们若是让一个方法抛出异常呢?3d

不过要注意的一点是,这个功能印象中是IDEA 2018年之后的版本才有的功能.调试

4.Evaluate Expression

好比咱们看源码时遇到这个一个场景,这里有一个byte[],可是咱们就想看一下这个的值究竟是啥.code

那么咱们能够这么操做一波cdn

这个功能的使用场景很是的广,经过这个功能,能够在看源码时,给某个变量赋咱们要想的值,从而改变代码的分支走向等等.总之,这个是肥朝看源码中,使用频率最高的功能之一.更多场景,等待老司机们本身调教!

5.toString的坑(重点)

相信看过Dubbo源码的朋友都会遇到过这个一个坑.也就是你把断点打在下面图示的第一个箭头的时候,是没法进入init()方法的.可是你把断点打在第二个箭头也就是init()方法的时候,是能进入的.曾经也有很多人问过这个问题.

固然除了这个坑以外,也有相似的坑,以下

因此这个idea的默认设置.建议在必定条件下仍是关闭


本文仅为冰山一角,上百篇原创干货还在路上扫描下面二维码关注肥朝,让天生就该造火箭的你,再也不委屈拧螺丝!

相关文章
相关标签/搜索