亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

 

寫代碼離不開調(diào)試,調(diào)試離不開斷點(diǎn)。

IDEA 對于斷點(diǎn)的支持非常豐富。掌握這些技巧以后,可以大大的提升開發(fā)效率。是幫助程序員保住頭發(fā),遠(yuǎn)離 996 的秘密武器。

 

斷點(diǎn)類型

IDEA 支持以下四種斷點(diǎn)類型:

  • 行斷點(diǎn)(Line breakpoints):最常用的一種,可以設(shè)置在任意可執(zhí)行的代碼行上面。
  • 方法斷點(diǎn)(Method breakpoints):設(shè)置在方法簽名上,當(dāng)進(jìn)入或退出方法時(shí),斷點(diǎn)可被喚醒。
  • 字段斷點(diǎn)(Field watchpoints):設(shè)置在字段(成員變量)上,當(dāng)該字段被讀取或者賦值時(shí)斷點(diǎn)被喚醒。
  • 異常斷點(diǎn)(Exception breakpoints):當(dāng)拋出指定異常時(shí)斷點(diǎn)被喚醒。

 

行斷點(diǎn)

行斷點(diǎn),在日常開發(fā)中最常用的方式。添加一個(gè)行斷點(diǎn)很簡單,在需要添加斷點(diǎn)的 gutter 上鼠標(biāo)左鍵單擊,或者光標(biāo)定位到需要設(shè)置斷點(diǎn)的代碼行,按 Ctrl + F8 即可。

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

行斷點(diǎn)

斷點(diǎn)添加成功后,gutter 上會(huì)顯示一個(gè)紅色的圓點(diǎn)。接下來,使用 Debug 方式運(yùn)行程序,就可以對代碼進(jìn)行調(diào)試了。

 

方法斷點(diǎn)

方法斷點(diǎn)你可能之前沒有用過,但如果你有閱讀源碼的習(xí)慣,那么你需要好好利用一下這個(gè)家伙了。

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

方法斷點(diǎn)

添加方法斷點(diǎn)和添加行斷點(diǎn)的步驟一樣,兩者只是外觀上有些不同,方法斷點(diǎn)用紅色的菱形表示。

那么方法斷點(diǎn)有什么用呢?舉個(gè)例子:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

類圖

有如上類關(guān)系,代碼實(shí)現(xiàn)如下:

public class ServiceImplA implements Service{
    @Override
    public String method() {
        return "hello A";
    }
}


public class ServiceImplB implements Service{
    @Override
    public String method() {
        return "hello B";
    }
}

 

有如下調(diào)用:

public String hello() {
    // 假設(shè)通過看代碼很難確定是哪個(gè)實(shí)現(xiàn)類的實(shí)例
    Service service = createService();
    return service.method();
}

這個(gè)時(shí)候,我們不能一眼看出 service 是 ServiceImplA 的實(shí)例,還是 ServiceImplB 的實(shí)例(這個(gè)例子代碼比較簡單,像 Spring 這類開源框架要復(fù)雜很多,看過源碼的話都有體會(huì))。

接下來就是方法斷點(diǎn)表演的時(shí)刻了,在接口 Service 的 method() 上打一個(gè)斷點(diǎn):

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

方法斷點(diǎn)

運(yùn)行程序,查看效果:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

方法斷點(diǎn)效果

可以看到,hello() 方法中的 service.method() 真正調(diào)用的是 ServiceImplA 的 metho() 方法。

另外,方法斷點(diǎn)還支持以下配置:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

方法斷點(diǎn)配置項(xiàng)

其中,Method entry 和 Method exit 二者至少要選擇一個(gè)(如果進(jìn)入方法和退出方法都不選,那方法斷點(diǎn)也就沒啥用了)。

 

字段斷點(diǎn)

字段斷點(diǎn)也是一個(gè)看源碼的神器。當(dāng)一個(gè)成員變量被多方引用時(shí),它可以精準(zhǔn)的找到誰讀取、修改了它的值。

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

字段斷點(diǎn)

字段斷點(diǎn)用一個(gè)紅色的眼睛表示,可謂是非常形象了。就像給成員變量專門安排了一個(gè)盯梢的人,有什么風(fēng)吹草動(dòng)第一時(shí)間通知你。

 

運(yùn)行程序,看下效果:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

字段斷點(diǎn)效果

可以看到,精準(zhǔn)的定位到 hello 被賦值的位置。

 

字段斷點(diǎn)還支持以下配置:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

字段斷點(diǎn)配置項(xiàng)

同樣,F(xiàn)ield access 和 Field modification 最少選一個(gè)。

 

異常斷點(diǎn)

異常斷點(diǎn)在我們修復(fù) bug 的時(shí)候很有用。可以精準(zhǔn)的定位到發(fā)生(指定類型)異常的代碼行。

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

異常斷點(diǎn)

異常斷點(diǎn)用一個(gè)紅色的閃電表示(斷點(diǎn)響應(yīng)以后才會(huì)顯示)。

使用快捷鍵 Ctrl + Shift + F8 打開斷點(diǎn)管理對話框,按如下步驟進(jìn)行添加:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

添加異常斷點(diǎn)

設(shè)置斷點(diǎn)響應(yīng)的異常類型:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

設(shè)置異常類型

運(yùn)行程序,查看效果:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

異常斷點(diǎn)效果

可以看到,當(dāng)發(fā)生(指定類型)異常后,程序停在了發(fā)生異常的代碼行,并在前面放一個(gè)紅色的閃電,提醒你就是這行代碼要搞事情。

 

斷點(diǎn)還支持以下配置:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

異常斷點(diǎn)配置項(xiàng)

同樣,Caught exception 和 Uncaught exception 最少選一個(gè)。

 

更多玩法

使用快捷鍵 Ctrl + Shift + F8 打開斷點(diǎn)管理對話框,可以解鎖更多斷點(diǎn)的玩法:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

斷點(diǎn)管理

比如可以設(shè)置斷點(diǎn)在滿足指定條件時(shí)才響應(yīng):

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

條件斷點(diǎn)效果

更多玩法留給你去探索。

 

斷點(diǎn)圖標(biāo)

下面是 IDEA 中各種類型斷點(diǎn)在不同狀態(tài)下的圖標(biāo)示意:

玩轉(zhuǎn) IDEA 花式打斷點(diǎn),從此告別 996

斷點(diǎn)圖標(biāo)示意

分享到:
標(biāo)簽:IDEA
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定