向工具人致敬。本文已被 https://www.yourbatman.cn 收录,外面一并有Spring技术栈、MyBatis、JVM、中间件等小而美的专栏供以收费学习。关注公众号【BAT的乌托邦】一一击破,深刻把握,回绝浅尝辄止。

前言

各位小伙伴大家好,我是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怎么少得了对云原生技术DockerKubernetes的优化反对呢?这些次要体现在对它们配置文件的反对上,在理论应用时你会感触进去。

降级倡议

以前我的倡议很激进,当初明确点,毕竟仅仅只是倡议????

对于破解

如果你是付费党(土豪),或者是开源committer,或者是edu邮箱拥有者,请疏忽此part哈。

  • 若你降级到了2020.2最新版本,你能够享有这些新个性性能,晋升编码效率。然而,临时破解没戏,这不我也试用着呢(就不信1个月后还不能破解????):

  • 若你仍决定停留在2020.1甚至之前版本,那么是能够实现破解的。破解形式可在公众号后盾回复“IDEA破解”取得,白嫖去吧~

总结

作为2020年的第二个版本,尽管说没有第一个版本(2020.1)提供的新性能那么的博人眼球,但好些新个性仍旧是可圈可点,值得称赞。

最初,仍旧要向那些手不释卷为IT行业提供优良工具的人们致敬!!!特地是捷克的那些创造者们,你们发明了十分好的工具进步了生产力,推动了社会某些产业的提高,勋绩卓越!!!

举荐你看:
  • Fastjson到了说再见的时候了
  • 1. 初识Jackson -- 世界上最好的JSON库
  • 2. 妈呀,Jackson原来是这样写JSON的
  • 3. 懂了这些,方敢在简历上说会用Jackson写JSON
  • 4. JSON字符串是如何被解析的?JsonParser理解一下
  • 5. JsonFactory工厂而已,还蛮有料,这是我没想到的

关注A哥

AuthorA哥(YourBatman)
集体站点www.yourbatman.cn
E-mailyourbatman@qq.com
微 信fsx641385712
沉闷平台
公众号BAT的乌托邦(ID:BAT-utopia)
常识星球BAT的乌托邦
每日文章举荐每日文章举荐