【肥朝】看源碼,我爲何推薦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的默認設置.建議在必定條件下仍是關閉


本文僅爲冰山一角,上百篇原創乾貨還在路上掃描下面二維碼關注肥朝,讓天生就該造火箭的你,再也不委屈擰螺絲!

相關文章
相關標籤/搜索