成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

玩轉 IDEA 花式打斷點,從此告別 996

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

代碼離不開調試,調試離不開斷點。

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

斷點類型

IDEA 支持以下四種斷點類型:

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

行斷點

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

行斷點

斷點添加成功后,gutter 上會顯示一個紅色的圓點。接下來,使用 Debug 方式運行程序,就可以對代碼進行調試了。

方法斷點

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

方法斷點

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

那么方法斷點有什么用呢?舉個例子:

類圖

有如上類關系,代碼實現如下:

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


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

有如下調用:

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

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

接下來就是方法斷點表演的時刻了,在接口 Service 的 method() 上打一個斷點:

方法斷點

運行程序,查看效果:

方法斷點效果

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

另外,方法斷點還支持以下配置:

方法斷點配置項

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

字段斷點

字段斷點也是一個看源碼的神器。當一個成員變量被多方引用時,它可以精準的找到誰讀取、修改了它的值。

字段斷點

字段斷點用一個紅色的眼睛表示,可謂是非常形象了。就像給成員變量專門安排了一個盯梢的人,有什么風吹草動第一時間通知你。

運行程序,看下效果:

字段斷點效果

可以看到,精準的定位到 hello 被賦值的位置。

字段斷點還支持以下配置:

字段斷點配置項

同樣,Field access 和 Field modification 最少選一個。

異常斷點

異常斷點在我們修復 bug 的時候很有用。可以精準的定位到發生(指定類型)異常的代碼行。

異常斷點

異常斷點用一個紅色的閃電表示(斷點響應以后才會顯示)。

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

添加異常斷點

設置斷點響應的異常類型:

設置異常類型

運行程序,查看效果:

異常斷點效果

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

斷點還支持以下配置:

異常斷點配置項

同樣,Caught exception 和 Uncaught exception 最少選一個。

更多玩法

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

斷點管理

比如可以設置斷點在滿足指定條件時才響應:

條件斷點效果

更多玩法留給你去探索。

斷點圖標

下面是 IDEA 中各種類型斷點在不同狀態下的圖標示意:

斷點圖標示意

責任編輯:姜華 來源: 今日頭條
相關推薦

2012-02-08 17:35:47

iPhoneiTunes

2009-02-10 09:34:00

2021-11-05 11:17:45

互聯網996大廠

2023-09-12 09:13:24

Shell腳本Dockerfil

2020-02-01 16:06:34

跳槽那些事兒網絡安全大數據

2021-10-22 08:09:16

斷點調試IAR開發工具

2024-06-28 10:29:18

異常處理Python

2023-12-01 16:12:29

2019-04-26 14:32:41

人工智能AI996

2023-09-13 15:06:24

2020-09-18 18:18:10

代碼開發工具

2011-06-30 21:09:26

2021-01-18 06:43:54

程序員公務員996

2020-09-18 14:27:26

GitHub代碼開發者

2021-12-15 23:10:34

JS Debugger 前端開發

2024-08-21 08:43:53

Python技巧鍵值

2025-01-07 12:30:00

C++參數傳遞代碼

2021-02-07 22:51:37

Fiddler打斷點界面
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本三级网址 | 色爱综合网 | 五月婷婷亚洲 | 日韩精品成人 | 美女天堂| 国产成人精品久久二区二区 | www.久久.com| 欧美不卡一区 | 久久久精品综合 | 7777精品伊人久久精品影视 | 日韩成人在线观看 | 日韩欧美在线视频一区 | 欧美一区二区在线观看 | 日本不卡一区二区三区在线观看 | 国产精品国产a级 | 黄色在线免费观看视频 | 国产欧美日韩一区二区三区在线 | 天天夜碰日日摸日日澡 | 天天操操| 精品国产一区二区三区性色av | 99热首页| 欧美中文字幕在线观看 | 国产精品高清一区二区三区 | 天天久久 | 黄色片网站国产 | 狠狠的操| 午夜电影网址 | jlzzjlzz欧美大全 | 成人国产在线观看 | 久久久影院 | 国产精品久久久 | 日本精品视频一区二区三区四区 | 在线看片国产 | 日本一区二区影视 | 手机看黄av免费网址 | 日韩精品国产精品 | 久久av.com | 国产精品福利久久久 | 亚洲一区二区免费 | 亚洲一区二区三区 | 色婷婷av777 av免费网站在线 |