关于intellij-idea:IntelliJ-IDEA-20202正式发布诸多亮点总有几款能助你提效

39次阅读

共计 5313 个字符,预计需要花费 14 分钟才能阅读完成。

向工具人致敬。本文已被 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 哥

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

正文完
 0