IntelliJ IDEA 2020.2 正式发布,诸多亮点总有几款能助你提效

IDEA 20 岁了,献礼它的第二个大版本(含以前版本破解)。java

各位小伙伴你们好,我是 A 哥。IDEA 上个较大版本的发布,要追溯到 4 月份了:时隔近 4 个月,北京时间 2020-07-28 深夜,IntelliJ IDEA再迎更新,这是 2020 年的第二个里程碑版本。git

以前提到过,2020 年是Jetbrain 公司的 20 周年(小伙子长成大男孩了),有理由相信官方会立些 Flag。因此自从官方在 2020-01-20 发布了其2020 年的 Roadmap后,我我的是有保持持续关注的,毕竟一方面是公司 20 周年,另外一方面是 21 世纪的“新 10 年”,这么好的契机很适合搞事情。程序员

上个版本(2020.1)发布后,带来了众多实用新特性,好比:中文支持、禅模式、Javadoc 渲染等等,某些新功能能够显著提升效率,所以反响是一片叫好。无独有偶,做为 2020 年的第二个里程碑版本,它能给咱们带来什么样的期许呢?数据库

按照惯例,来一张最新版 IDEA 启动图尝尝鲜:我把2020.1版本启动图也扔在这供你对比,哪一个更好看?windows

what’s new(新特性)

IntelliJ IDEA 2020.2 作的改进重点体如今彻底控制 GitHub 请求,包括在 IDE 中审查、合并 GitHub PR 等。同时还提供了对 Java1五、Jakarta EE 9 的支持,还包括 Quarkus、microaut 等等。数组

一、支持 Java 15

尽管 Java 15 将在 9 月发布,IntelliJ IDEA 2020.2 已经提早为此作好了准备,反应不可为不灵活,给个大大的赞👍。app

说明:Java 15 新特性啥的本文不提,毕竟这不是本文关注点所在工具

题外话:从 JDK9 以后,Oracle 采用了新的发布周期:每 6 个月发布一个版本,每 3 年发布一个 LTS 版本。JDK15 是继 JDK9 以后发布的第七个版本, 该版本依旧为非 LTS 版本,最新的 LTS 版本为 JDK11(JDK17 还未发布)。性能

二、相关问题内嵌提示

这个功能很是好用,特别对有些不使用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),是不会相似提示的哦

三、运行时异常缘由分析

一听这个功能名称,就以为很厉害。快速定位问题一直是程序员的痛点,如今让工具来辅助你完成,效率更上一层楼。

新版 IDEA 为异常堆栈跟踪分析添加了数据流分析。点击堆栈跟踪时,IDE 可能会将您带到代码中出现异常的确切位置,并提供建议来帮助您了解发生此错误的缘由。

下面用一个 NPE 异常做为示例感觉一把,代码以下:

public static void main(String[] args) {    Integer i = null;    System.out.println(i.toString());}

运行程序,抛出异常,控制台显示:如红框所示,IDEA 给出的建议是让咱们建立一个断点,单击此“按钮”即弹出断点建立对话框:不得不说,真的是方便了不少。

:老版本中效果截图,用以对比:

四、更好 Stream API 自动补全

Stream API在开发中太太太经常使用了,所以哪怕只是更智能一丁点的,带来的效率提高均可谓是大大的。

能够直接在集合或数组中直接输入 Stream API 方法名,IDEA 会自动插入 stream()。这适用于任何流操做(map、reduce、collect 等全部操做都行)。

话外音:之后你就不用本身的手动的多写一步stream()了,开不开森

话很少说,来个栗子:

:老版本中效果截图,用以对比:很明显根本就不支持嘛

五、Live Templates 新增 Java 分组

相信这是不少小伙伴一直以来的一个痛点,毕竟我们都是 Java 程序员,使用Live Templates几乎 100%都是针对于 Java 代码的,而后老版本居然还没有个 Java 分组,实在难受,我还记得我刚开始使用 IDEA 时就默默吐槽了这点。

如今好了,这个版本终于补上喽:

小贴士:你以前放在自定义分组里的还在那,不会给你自动挪过来的

:老版本中效果截图,用以对比:JavaScript 分组都有居然没有 Java 分组,服气特别强调:此窗口是新增的,老版本并没有此能力,也并没有此窗口。因此,升吗?🙂

六、新增 Problems 窗口

此版本新增了一个 Problems 窗口,简直不要太赞。

显示与当前文件有关的警告和错误以及问题描述。在此工具窗口中,能够右键点击问题导航到遇到问题的代码行,方便你逐个修复。另外,它在文件右上角还有问题总数、上/下导航按钮,可谓很是贴心:

七、操做意图预览

咋一看还觉得人工智能呢,都能预览个人意图了。

此功能可让你在将它们实际应用到代码以前预览它们的结果。按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),便可看见结果预览:

八、改进的拼写检查

IDEA 使用 spell checker 作拼写检查,看你单词也没有写错啥的。此次改进主要提高了性能和准确性,然而我通常都是把此项禁用的,毕竟有时候我须要用拼音命名😄。

九、完整的 GitHub pull requests 支持

如今整个 GitHub PR 工做流程所有能够直接在 IntelliJ IDEA 完成。包括浏览、指派、管理以及合并 PR、查看时间线和内联评论、提交评论、审查以及接受更改。

简单点,我就不用实际案例了。引用官方提供的三张图做为示例了哈:我想说,这个功能区,对作 Java 开源社区开发的工做者绝对是福音,能够多睡会了~

十、改进的 Git 操做对话框

主要体如今merge、pull 和 rebase对话框的视觉一致性上。此外还改进了对话框,使其能够清楚地标识待执行的 Git 命令,并加入一些缺失选项,好比向 Pull 和 Merge 对话框分别添加了--rebase--no-verify

:老版本中效果截图,用以对比:

十一、支持 Jakarta EE 9

Jakarta EE 9 同 Java 15 同样也将会在今年 9 月份发布,但 IDEA 已早早的提供了支持。而且号称是已经支持到了 Jakarta EE 的全部可用特性(典型的 13 种技术嘛)。

题外话:2018 年 3 月初,Java EE 正式改名为 JakartaEE,至此再无 JavaEE

十二、建立企业项目向导

若是须要建立 Java EE 8 或 Jakarta EE 9 项目,可使用 IDEA 的建立向导。这对于天朝的程序员来讲貌似没啥卵用,由于咱们都用 Spring,因此大都使用Spring Initializr来建立工程。

十二、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)效果截图,用以对比:新版本仍是感受到明显的功能提高的。上个版本官方不建议你用于生产分析,很明显这个版本已经没有这样的字眼了,用吧骚年。

十二、使用预先构建好的 indexes

IDEA 在每打开一个项目时都会它进行 index 创建索引,以确保你后续时候过程当中的编码流畅度(代码补全、代码跳转…),而这个创建索引阶段通常来讲是比较耗时的。

同一个项目通常会被 N 多人使用、开发,那么能不能只须要构建一次索引,别人直接用就好了呢?IDEA 此版本对此痛点提供了支持。

如今,经过在另外一台机器上生成的索引(咱们能够弄台机器专门来生成索引),而不用再在本地构建,索引文件拿来就用,能够加快索引速度。

小贴士:此功能须要安装共享索引插件提供额外支持

1三、正在索引中也可编码

当咱们打开一个项目时,若是正在构建索引,代码的颜色是这样的(预示先别编码,请等待):说明:颜色灰色并非说你不能敲字,只是没有代码提示了

索引构建好后,颜色恢复正常,你能够正常编码了:

而后在 IntelliJ IDEA 2020.2 版本中,当在为你的项目构建索引时,你如今能够继续编写代码了。IDE 如今能在索引期间为 Java 提供代码完成建议(也就是最重要的代码补全提示能力)。

1四、支持 Maven Wrapper

IntelliJ IDEA 2020.2 如今支持 Maven 包装器,它会自动将所需的 Maven 版本安装到您的项目中。若是提供并配置了 Maven 包装器,IDE 会自动使用它并在须要时导入更改。

Maven Wrapper(Maven 包装器)是什么?嗯嗯,建议你能够本身了解一下了~

1五、其它

其它的还有诸如对JavaScript语言的代码自动补全支持、Database 连接数据库的 UI/功能优化、Scala 语言支持等,由于用的人着实很少(主要是我本身也不用😄),因此就不作详解了哈。

固然喽,新版 IDEA 怎么少得了对云原生技术DockerKubernetes的优化支持呢?这些主要体如今对它们配置文件的支持上,在实际使用时你会感觉出来。

升级建议

之前个人建议很保守,如今明确点,毕竟仅仅只是建议😄

  • 若你升级到了2020.2最新版本,你能够享有这些新特性功能,提高编码效率。可是,暂时xx 没戏,这不我也试用着呢(就不信 1 个月后还不能 xx😄):

总结

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

最后,依旧要向那些孜孜不倦为 IT 行业提供优秀工具的人们致敬!!!特别是捷克的那些创造者们,大家创造了很是好的工具提升了生产力,推进了社会某些产业的进步,功勋卓越!!!

阅读全文: http://gitbook.cn/gitchat/activity/5f216efe2436544441a3e6b7

您还能够下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX