向工具人致敬。本文已被 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 怎么少得了对云原生技术 Docker
和Kubernetes
的优化反对呢?这些次要体现在对它们配置文件的反对上,在理论应用时你会感触进去。
降级倡议
升。
以前我的倡议很激进,当初明确点,毕竟仅仅只是倡议????
对于破解
如果你是付费党(土豪),或者是开源 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 |
yourbatman@qq.com | |
微 信 | fsx641385712 |
沉闷平台 |
|
公众号 | BAT 的乌托邦(ID:BAT-utopia) |
常识星球 | BAT 的乌托邦 |
每日文章举荐 | 每日文章举荐 |