詳解IntelliJ IDEA 2020 的Debug功能
IntelliJ IDEA 作為工作最常用的開發(fā)工具之一,自然就成了我的主要升級對象,早上在逛IntelliJ IDEA 官網(wǎng)時,驚奇的發(fā)現(xiàn)居然有新版本更新,這讓我有點(diǎn)喜出望外,沒說的果斷下載!
IntelliJ IDEA 2020.1 這個版本除了修復(fù)日常bug,對調(diào)試器和事件探查器(Profiler)進(jìn)行了改進(jìn),并引入了新的提交工具窗口(Commit toolwindow)以及禪模式(Zen Mode)。
debug升級
IntelliJ IDEA 2020.1 向調(diào)試器添加了數(shù)據(jù)流分析協(xié)助功能(dataflow analysis assistance),此功能根據(jù)程序執(zhí)行的當(dāng)前狀態(tài)預(yù)測并顯示可能的異常以及始終為真/假的條件。
我們說的在明白一點(diǎn)就是當(dāng)我們調(diào)試 Java 代碼并到達(dá)斷點(diǎn)時,IDE 將基于程序的當(dāng)前狀態(tài)運(yùn)行數(shù)據(jù)流分析,并向我們顯示在代碼執(zhí)行到該斷點(diǎn)之前下一步將發(fā)生的情況:

舉個簡單的例子:
public void test(){
int a = 1 ;
int b = 2 ;
int c = a + b;
}
之前 debug 代碼時只有當(dāng)斷點(diǎn)走到 int c = a + b;時才會顯示 c=3 的結(jié)果。
升級后的 debug 功能可以在斷點(diǎn)走到 int b = 2 時就可以顯示出 c=3 的結(jié)果了,就不用我們一行一行的往下 debug 了。省去了很多無用功,節(jié)約了很多調(diào)試的時間。
折疊遞歸調(diào)用
當(dāng)在堆棧中的更高層調(diào)用同一方法時,IntelliJ IDEA 現(xiàn)在可以檢測到遞歸調(diào)用。
現(xiàn)在,IDE 會建議開發(fā)者將這些調(diào)用從子樹中取出,從而可以繞過遞歸,并專注于消耗大部分資源的方法以及它們進(jìn)行的調(diào)用。
遞歸調(diào)用在“調(diào)用樹”選項卡中用以下新的特殊圖標(biāo)表示:

新commit工具窗口
在 2020.1 中為 Commit UI 提供了一個新的工具窗口。新的commit窗口包含了LocalChange和Shelf兩個選項卡,個人覺得是這次版本更新最實用的一個功能點(diǎn),以往提交代碼時想看某文件的差異會單獨(dú)彈出一個窗口,相對繁瑣。而這次的新窗口將所有與提交有關(guān)的任務(wù)都放在了一起,例如:差異檢查、選擇要提交的文件及代碼塊、提交注釋信息,看起來如下:

禪模式(Zen Mode)
再也不怕敲代碼時,被一些無關(guān)緊要的消息被打擾了
此版本添加了新的禪模式(顧名思義就是很清靜了,佛系敲代碼做到心無旁騖666),以消除可能的干擾并幫助開發(fā)者完全專注于代碼上。
其實這種模式本質(zhì)上,就是結(jié)合了免打擾模式和全屏模式,因此不必每次想要進(jìn)入或退出它們時都啟用或禁用這兩種模式。
那么要如何啟用禪模式?
第一種、 View > Appearance > Enter Zen Mode
第二種、Ctrl+` > View mode > Enter Zen Mode
LightEdit 模式
顧名思義,這就是一個輕量的編輯模式,專用于打開和編輯文件。LightEdit 模式允許我們在簡單的編輯器窗口中打開文件,而無需創(chuàng)建或加載項目。這也是對不少開發(fā)者希望將 IntelliJ IDEA 作為通用文本編輯器的要求的回應(yīng)。
嘗試 LightEdit 模式最簡單的方式是通過命令行打開文件,如下所示:

總結(jié)
Java開發(fā)工具演變之路,從我最初接觸Java開始用的 myeclipse 到 eclipse,再到 Idea,技術(shù)一路革新開發(fā)效率也再不斷提升,如今Idea已然成為最流行的Java開發(fā)工具!
暫時就寫到這,后續(xù)有新版本功能在和大家分享,學(xué)無止境加油💪!
雙手奉上下載地址:https://www.jetbrains.com/idea/nextversion
到此這篇關(guān)于IntelliJ IDEA 2020 的Debug功能也太好用了,真香!的文章就介紹到這了,更多相關(guān)IDEA 2020 Debug功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot中使用@Async實現(xiàn)異步調(diào)用任務(wù)
本篇文章主要介紹了spring boot中使用@Async實現(xiàn)異步調(diào)用任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
netty?pipeline中的inbound和outbound事件傳播分析
這篇文章主要為大家介紹了netty?pipeline中的inbound和outbound事件傳播分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Springboot中基于X509完成SSL檢驗的原理與實現(xiàn)
本文詳細(xì)解析了HTTPS通信中SSL證書的作用和原理,SSL證書建立在客戶端和服務(wù)器之間的安全通道,確保數(shù)據(jù)傳輸?shù)耐暾院捅C苄?詳細(xì)的介紹了Springboot中基于X509完成SSL檢驗的原理與實現(xiàn),感興趣的可以了解一下2024-09-09
在Spring Boot中如何使用數(shù)據(jù)緩存
本篇文章主要介紹了在Spring Boot中如何使用數(shù)據(jù)緩存,具有一定的參考價值,有興趣的可以了解一下。2017-04-04
Java多線程+鎖機(jī)制實現(xiàn)簡單模擬搶票的項目實踐
鎖是一種同步機(jī)制,用于控制對共享資源的訪問,在線程獲取到鎖對象后,可以執(zhí)行搶票操作,本文主要介紹了Java多線程+鎖機(jī)制實現(xiàn)簡單模擬搶票的項目實踐,具有一定的參考價值,感興趣的可以了解一下2024-02-02
Spring Boot 3.x 集成 Eureka Server/Cl
隨著SpringBoot 3.x版本的開發(fā)嘗試,本文記錄了在集成Eureka Server/Client時所遇到的問題和解決方案,文中詳細(xì)介紹了搭建服務(wù)、配置文件和測試步驟,感興趣的朋友跟隨小編一起看看吧2024-09-09

