IntelliJ IDEA 2020.2正式發布,兩點多多總能助你提效
前言
各位小伙伴大家好,我是A哥。IDEA上個較大版本的發布,要追溯到4月份了:
時隔近4個月,北京時間2020-07-28深夜,IntelliJ IDEA再迎更新,這是2020年的第二個里程碑版本。
之前提到過,2020年是Jetbrain公司的20周年(小伙子長成大男孩了),有理由相信官方會立些Flag。所以自從官方在2020-01-20發布了其2020年的Roadmap后,我個人是有保持持續關注的,畢竟一方面是公司20周年,另一方面是21世紀的“新10年”,這么好的契機很適合搞事情。
上個版本(2020.1)發布后,帶來了眾多實用新特性,比如:中文支持、禪模式、Javadoc渲染等等,某些新功能可以顯著提高效率,因此反響是一片叫好。無獨有偶,作為2020年的第二個里程碑版本,它能給我們帶來什么樣的期許呢?
正文
按照慣例,來一張最新版IDEA啟動圖嘗嘗鮮:
我把2020.1版本啟動圖也扔在這供你對比,哪個更好看?
what’s new(新特性)
IntelliJ IDEA 2020.2做的改進重點體現在完全控制GitHub請求,包括在IDE中審查、合并 GitHub PR等。同時還提供了對Java15、Jakarta EE 9的支持,還包括Quarkus、microaut等等。
1、支持Java 15
盡管Java 15將在9月發布,IntelliJ IDEA 2020.2已經提前為此做好了準備,反應不可為不靈活,給個大大的贊👍。
說明:Java 15新特性啥的本文不提,畢竟這不是本文關注點所在
題外話:從JDK9之后,Oracle采用了新的發布周期:每6個月發布一個版本,每3年發布一個LTS版本。JDK15是繼JDK9之后發布的第七個版本, 該版本依舊為非LTS版本,最新的LTS版本為JDK11(JDK17還未發布)。
2、相關問題內嵌提示
這個功能非常好用,特別對有些不使用RENAME功能的小伙伴來說是福音。
如果您通過更改具有外部使用的類、方法或字段的簽名而引入了編譯錯誤,IDE將用鑲嵌提示通知您。單擊相關嵌入提示,IDE將自動幫你打開Find工具窗口,列出了在外部文件中發生的所有相關問題。
看完這段話是不是還有點蒙,來吧,A哥給你準備了示例:
Person.java文件:
public class Person { public String eat(String food) { return 'SUCCESS'; }}
Demo.java文件:
public class Demo { public static void main(String[] args) { new Person().eat('大魚'); new Person().eat('大肉'); }}
這時編譯肯定一切正常。現在我做出改變:更改Person類的eat()方法名為eatDish(),結果如下圖:
鼠標單擊提示,自動幫你打開Find框且定位到問題所在:
就問你,這個功能爽不爽,實用不實用?
小貼士:在同一個.java文件內(即使是不同class),是不會類似提示的哦
3、運行時異常原因分析
一聽這個功能名稱,就覺得很厲害。快速定位問題一直是程序員的痛點,現在讓工具來輔助你完成,效率更上一層樓。
新版IDEA為異常堆棧跟蹤分析添加了數據流分析。點擊堆棧跟蹤時,IDE 可能會將您帶到代碼中出現異常的確切位置,并提供建議來幫助您了解發生此錯誤的原因。
下面用一個NPE異常作為示例感受一把,代碼如下:
public static void main(String[] args) { Integer i = null; System.out.println(i.toString());}
運行程序,拋出異常,控制臺顯示:
如紅框所示,IDEA給出的建議是讓我們創建一個斷點,單擊此“按鈕”即彈出斷點創建對話框:
不得不說,真的是方便了很多。
附:老版本中效果截圖,用以對比:
4、更好Stream API自動補全
Stream API在開發中太太太常用了,因此哪怕只是更智能一丁點的,帶來的效率提升都可謂是大大的。
可以直接在集合或數組中直接輸入Stream API方法名,IDEA 會自動插入 stream()。這適用于任何流操作(map、reduce、collect等所有操作都行)。
話外音:以后你就不用自己的手動的多寫一步stream()了,開不開森
話不多說,來個栗子:
附:老版本中效果截圖,用以對比:很明顯根本就不支持嘛
5、Live Templates新增Java分組
相信這是很多小伙伴一直以來的一個痛點,畢竟咱們都是Java程序員,使用Live Templates幾乎100%都是針對于Java代碼的,然后老版本竟然還沒有個Java分組,實在難受,我還記得我剛開始使用IDEA時就默默吐槽了這點。
現在好了,這個版本終于補上嘍:
小貼士:你之前放在自定義分組里的還在那,不會給你自動挪過來的
附:老版本中效果截圖,用以對比:JavaScript分組都有竟然沒有Java分組,服氣
特別強調:此窗口是新增的,老版本并無此能力,也并無此窗口。所以,升嗎?🙂
6、新增Problems窗口
此版本新增了一個Problems窗口,簡直不要太贊。
顯示與當前文件有關的警告和錯誤以及問題描述。在此工具窗口中,可以右鍵點擊問題導航到遇到問題的代碼行,方便你逐個修復。
另外,它在文件右上角還有問題總數、上/下導航按鈕,可謂非常貼心:
7、操作意圖預覽
咋一看還以為人工智能呢,都能預覽我的意圖了。
此功能可以讓你在將它們實際應用到代碼之前預覽它們的結果。按Alt+Enter調用顯示上下文動作并選擇你需要的意圖動作,然后按相應快捷鍵顯示結果預覽(Windows和Linux上按Ctrl+Shift+I,macOS上按Alt+Space)。
例如如下代碼:
public static void main(String[] args) { List<Integer> ids = new ArrayList<>(); for (Integer id : ids) { if (id > 10) { System.out.println(id); } }}
在for處按Alt+Enter:
再按Ctrl+Shift+I(我是windows),即可看見結果預覽:
8、改進的拼寫檢查
IDEA使用spell checker做拼寫檢查,看你單詞也沒有寫錯啥的。這次改進主要提升了性能和準確性,然而我一般都是把此項禁用的,畢竟有時候我需要用拼音命名😄。
9、完整的GitHub pull requests支持
現在整個 GitHub PR 工作流程全部可以直接在 IntelliJ IDEA 完成。包括瀏覽、指派、管理以及合并 PR、查看時間線和內聯評論、提交評論、審查以及接受更改。
簡單點,我就不用實際案例了。引用官方提供的三張圖作為示例了哈:
我想說,這個功能區,對做Java開源社區開發的工作者絕對是福音,可以多睡會了~
10、改進的Git操作對話框
主要體現在merge、pull和rebase對話框的視覺一致性上。此外還改進了對話框,使其可以清楚地標識待執行的 Git 命令,并加入一些缺失選項,比如向Pull和 Merge對話框分別添加了--rebase和--no-verify。
附:老版本中效果截圖,用以對比:
11、支持Jakarta EE 9
Jakarta EE 9同Java 15一樣也將會在今年9月份發布,但IDEA已早早的提供了支持。并且號稱是已經支持到了Jakarta EE的所有可用特性(典型的13種技術嘛)。
題外話:2018年3月初,Java EE正式更名為JakartaEE,至此再無 JavaEE。
12、創建企業項目向導
如果需要創建Java EE 8或Jakarta EE 9項目,可以使用IDEA的創建向導。
這對于天朝的程序員來說貌似沒啥卵用,因為我們都用Spring,所以大都使用Spring Initializr來創建工程。
12、HPROF內存查看器
我們知道IntelliJ IDEA 2020.1版本就可以打開.hprof內存轉儲文件,有助于識別內存泄漏,并找到優化內存使用率的方法。那時候功能還非常的簡陋,IDEA官方承諾會持續改進的,果不其然這個版本帶來了功能提升。
下面通過案例使用一把。代碼如下:
public static void main(String[] args) throws InterruptedException { List<Integer> ids = new ArrayList<>(); TimeUnit.MINUTES.sleep(10);}
先使用jps找到你的進程id(這個都會吧,我就不截圖了),然后使用jmap -dump:file=test.hprof,format=b 你的pid拿到一份dump文件:test.hprof。
然后使用IDEA的此功能把該文件讀取進來:
文件讀取進來后,可在其“專屬視窗”看到分析結果:
指出使用大量內存的代碼部分,并檢測內存泄漏的原因。HPROF內存查看器顯示了計算的對象保留大小、到垃圾收集器根的最短路徑、對象(保留的對象)的支配器樹和傳入的引用。
附:上個版本(2020.1)效果截圖,用以對比:
新版本還是感覺到明顯的功能提升的。上個版本官方不建議你用于生產分析,很明顯這個版本已經沒有這樣的字眼了,用吧騷年。
12、使用預先構建好的indexes
IDEA在每打開一個項目時都會它進行index建立索引,以確保你后續時候過程中的編碼流暢度(代碼補全、代碼跳轉...),而這個建立索引階段一般來說是比較耗時的。
同一個項目一般會被N多人使用、開發,那么能不能只需要構建一次索引,別人直接用就行了呢?IDEA此版本對此痛點提供了支持。
現在,通過在另一臺機器上生成的索引(我們可以弄臺機器專門來生成索引),而不用再在本地構建,索引文件拿來就用,可以加快索引速度。
小貼士:此功能需要安裝共享索引插件提供額外支持
13、正在索引中也可編碼
當我們打開一個項目時,如果正在構建索引,代碼的顏色是這樣的(預示先別編碼,請等待):
說明:顏色灰色并不是說你不能敲字,只是沒有代碼提示了
索引構建好后,顏色恢復正常,你可以正常編碼了:
然后在IntelliJ IDEA 2020.2版本中,當在為你的項目構建索引時,你現在可以繼續編寫代碼了。IDE現在能在索引期間為Java提供代碼完成建議(也就是最重要的代碼補全提示能力)。
14、支持Maven Wrapper
IntelliJ IDEA 2020.2現在支持Maven包裝器,它會自動將所需的Maven版本安裝到您的項目中。如果提供并配置了Maven包裝器,IDE會自動使用它并在需要時導入更改。
Maven Wrapper(Maven包裝器)是什么?嗯嗯,建議你可以自己了解一下了~
15、其它
其它的還有諸如對JavaScript語言的代碼自動補全支持、Database鏈接數據庫的UI/功能優化、Scala語言支持等,因為用的人著實不多(主要是我自己也不用😄),所以就不做詳解了哈。
當然嘍,新版IDEA怎么少得了對云原生技術Docker和Kubernetes的優化支持呢?這些主要體現在對它們配置文件的支持上,在實際使用時你會感受出來。
升級建議
升。
以前我的建議很保守,現在明確點,畢竟僅僅只是建議😄
若你仍決定停留在2020.1甚至之前版本,那么是可以實現破解的。
總結
作為2020年的第二個版本,雖然說沒有第一個版本(2020.1)提供的新功能那么的博人眼球,但好些新特性依舊是可圈可點,值得稱贊。
最后,依舊要向那些孜孜不倦為IT行業提供優秀工具的人們致敬!!!特別是捷克的那些創造者們,你們創造了非常好的工具提高了生產力,推動了社會某些產業的進步,功勛卓越!!!
推薦你看:
Fastjson到了說再見的時候了
1. 初識Jackson -- 世界上最好的JSON庫
2. 媽呀,Jackson原來是這樣寫JSON的
3. 懂了這些,方敢在簡歷上說會用Jackson寫JSON
4. JSON字符串是如何被解析的?JsonParser了解一下
5. JsonFactory工廠而已,還蠻有料,這是我沒想到的
到此這篇關于IntelliJ IDEA 2020.2正式發布的文章就介紹到這了,更多相關IntelliJ IDEA 2020.2正式發布內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!