就在前几天,Java软件开发神器 IDEA 2020.1 新版发布了:

我第一时间在机子上更新并体验了几天,感觉还是有点香的!怎么硕呢,体验完新特性之后,不由的感叹一句:IDEA现在真的是越来越智能,越来越懂开发者了。


UI/界面升级

1、界面支持中文了

汉化后的效果就是这个憨样子:

各花入各眼,好坏就不做评判了,可以根据自己的喜好来调节。

必须要说的是,这个中文汉化不是软件原生支持,而是需要下载安装一个名为Chinese (Simplified) Language Pack的插件,好在这个插件就是JetBrains官方提供的

2、导航栏进化

现在代码层级导航栏这里,可以直接定位到文件中的某个具体方法或者字段了,这个的确很高效

3、支持编辑器内的Javadocs渲染

以前在IDEA中阅读Javadoc非常不方便,因为处于原始状态的Javadoc中含有各种标记,不好读。这次新版的IDEA 2020新增了Javadocs的渲染功能,点击左边的小按钮就可以启用

渲染后的Javadoc就非常直观易读了,而且还可以调整字号

4、新增主题和字体

首先默认支持了JetBrains自家的新JetBrains Mono字体,这没啥可说的,之前就体验过了,详细可参考前文《试水JetBrains官方新编程字体,真香!》

然后则是采用了统一的IntelliJ Light主题,而且该主题已经在不同的操作系统中完全统一了

喜不喜欢看大家个人习惯了。

5、船新的LightEdit模式

LightEdit,顾名思义,轻量级的代码编辑。

是的,这次更新的IDEA支持打开单个代码文件进行编辑,而无需打开整个项目。文件可以在单独的编辑窗口打开,而且该窗口可以和其他(项目)窗口共存。就像这样:

更强大的是,直接支持快捷打开这个单文件所在的完整项目:

甚至还可以通过命令行来打开单文件,这相当可以了:

6、支持“禅”模式

现在的这个代码展示模式有够丰富了,支持四种了:

当然,禅模式是最彻底的,一开这个模式,整个世界都清净了…

7、终端支持分栏了

现在可以随意地将IDEA自带的终端进行横竖分栏,非常方便


支持直接IDEA里安装JDK和Git

很多小伙伴交流说自己JDK环境好像装的有问题,实验各种出问题。为了这个事,强迫症都快犯了,很烦。

从IntelliJ IDEA 2020.1开始,我们可以直接在创建项目时,直接从IDEA上下载并设置JDK环境,很方便了。

我特地实验了一下,在IDEA里面下载安装了个Open JDK 14,没毛病,好用,切换也很方便。

除此之外,IDEA还直接支持Git的安装,i了i了


支持Java 14新特性

前段时间Java 14发布,加入了一些新特性,这次IDEA 2020.1迅速跟进,支持了Java 14的一些新特性,举两个典型的例子。

1、instanceof用法增强

老的Java版本中,对于instanceof语法,我们一般都是这样用的:

private void test( Object obj ) {if( obj instanceof String  ) {String str = (String) obj;  // 需手动强制转换!System.out.println( str.isEmpty() );}
}

而Java 14对instanceof用法做了增强,我们借助全新的IDEA 2020,可以快捷的将上面的代码自动重构成如下所示:

所以最终变成了这个亚子:

private void test( Object obj ) {if( obj instanceof String str ) { // 校验通过,直接后面定义变量,无需强转!System.out.println( str.isEmpty() );}
}

2、record新语法支持

Java 14新增了record新语法,record的词面意思就是 “记录”,主要用于形式化的固定记录,这在以前主要就是通过 不可变类来实现的,举个例子吧。

比如我们定义一个不可变的日志记录类LogRecord,里面包含日志ID(id),日志时间(date),日志详情(detail),按照老的做法,只能使用class进行定义:

public final class LogRecord { // 不可变类private final int id;private final LocalDate date;private final String detail;public LogRecord(int id, LocalDate date, String detail) {this.id = id;this.date = date;this.detail = detail;}public int getId() {return id;}public LocalDate getDate() {return date;}public String getDetail() {return detail;}@Overridepublic String toString() {return "LogRecord{" +"id=" + id +", date=" + date +", detail='" + detail + '\'' +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;LogRecord logRecord = (LogRecord) o;return id == logRecord.id &&Objects.equals(date, logRecord.date) &&Objects.equals(detail, logRecord.detail);}@Overridepublic int hashCode() {return Objects.hash(id, date, detail);}}

Java 14认为上面这种final类型class的定义的套路是完全固定的,写了很多固定套路的代码,包括:构造函数、Getter方法、toString()方法、hashCode()equals()方法等等,十分无聊。

为此Java 14推出了全新的record语法,只需一行代码即可搞定,十分方便:

record LogRecord( int id, LocalDate date, String detail ) {}

这次IDEA 2020中就已经完全支持recod语法了,并且还可以自动显式地为record生成各种方法:


支持更加智能的检查和重构

1、支持就地更改方法签名

什么意思呢?举个例子。

当你想直接修改某个已有方法的参数时,不管三七二十一,上来可以直接修改方法签名,然后点击更新,接下来的所有步骤IDEA可以帮你完成。

2、智能分析日期字符串格式

比如这个例子中,我格式化一个日期时,无意将年月日yyyy/MM/dd字符串写成了yyyy/mm/dd,中间的MM大小写忘了,IDEA自动给我们分析出来了:

3、智能语法和拼写检查器

这个功能得配合Grazie这个插件一起使用,该插件是一个全面的语法、拼写、以及样式检查工具。

比如,这地方我小手一抖,写错了英语语法,它立马帮我们提示出来了


增强调试功能

1、数据流分析辅助,可以直接预测下面的运行结果

IDEA 2020.1直接将数据流分析添加到JVM调试器。当程序在断点处停止时,IDEA可以根据程序的当前状态运行数据流分析,来预测下一步将要发生什么。

2、调试时,支持固定对象字段

当一个对象字段过多,以致于调试时很难找到需要的字段时,我们可以直接将其置顶,便于查看。

3、以文件形式存储运行配置

新版IDEA支持直接将当前的调试/运行的配置存档,并在以后选择重新加载


更加先进的版本控制

第一个大的改进就是重新设计了代码提交的窗口,而不再是以前老的那种模态化弹窗式窗口了。这样一来,提交代码时的代码比对,编辑会更加舒适。

第二个改进就是支持搜索刷新本地以及远端的代码分支:

另外,这个历史日志留痕也是蛮好看的:


Maven和Gradle导入更新

此处就以Maven工具为例,编辑器右上角出现的是一个浮动通知。修改构建文件后,可以使用这个迷你的通知图标来加载更改。


数据库处理增强

新版IDEA内置的数据库管理,现在可以支持将数据导出到Excel(.xlsx)文件,并且直接在编辑器中以文本形式查看


增强的HTTP Client

升级之后的HTTP Client更加智能,典型的比如:支持自动匹配和补全

而且还可以在Contoller代码的左侧,通过快捷的方式来自动生成HTTP请求文件

而且对于Spring项目,还可以在底部的Endpoints窗口里来快捷生成HTTP请求文件。


其他改进

1、对各种框架的支持改进,比如:Spring WebFlux/Selenium/JMS/Micronaut/RxJava等等

2、对Docker/Kubernetes的支持改进

3、对Scala 3的支持

4、对Android Volley的支持

5、对JavaScript的改进和支持


小结

体验一番之后发现,新版的IDEA 2020.1肉眼可见的改进还是非常多的,挺香。

不过还有一个实际的问题就是:我一升级之后发现一大票的插件都不能用了,所以周边支持的兼容性还得再等等。


船新 IDEA 2020.1真香体验!Java开发首席生产力担当相关推荐

  1. 船新 IDEA 2020.3 插件大合集,个个都是精品!

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | J ...

  2. 计算机R3处理器,【新CPU】入门级真香!全新锐龙APU之R3-4200G/4350G评测

    [新CPU]入门级真香!全新锐龙APU之R3-4200G/4350G评测 2020-07-22 14:39:07 51点赞 63收藏 20评论 [0]前言 当新APU罗列在眼前让我选择,毫不犹豫看上了 ...

  3. 非华为电脑多屏协同_苹果转华为后的真香体验1-非华为电脑体验跨屏协同,好用...

    官方介绍称,华为多屏协同功能基于EMU10.0的分布式技术,实现跨系统.跨设备协同.将手机和MateBook连接之后,可以实现资源快速共享,协同操作,让办公更高效.手机和MateBook可以通过碰一碰 ...

  4. 联想小新air14 2020酷睿版使用体验-长期同步更新

    联想小新Air14 2020 酷睿版i5使用体验-长期更新 联想小新Air14 2020 酷睿版i5使用体验-长期更新 1\FnLock使用 2020/08/13 电脑散热,夏天 2020/11/03 ...

  5. 联想小新增加固态硬盘后安装不了系统_4千价位也能面面俱到?小新Air14 2020锐龙版体验测试...

    作为今年联想锐龙4000轻薄本产品家族中的一员,小新Air14 2020可以算是比较"四平八稳"的一款,没有小新Pro 13的高分屏和散热水准,质感轻薄不如定位更高的Yoga 14 ...

  6. Java程序员必看:2020年最流行的Java开发技术

    在本文中,我们将以编程界最常用的编程语言Java为例,分享最为主流的技术与工具,下面和千锋广州小编一起来看看吧! Java几乎无处不在,无论在智能手机.台式机.游戏设备还是科学超级计算机上,处处都有J ...

  7. 安卓平板体验Java开发,还能白嫖一年阿里无影云,真香!(内含白嫖方法,人人可领)...

    作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 阿里无影云早有耳闻,前两天看朋友发体验照片,可能是程序员天生爱折腾的特性又发挥作用 ...

  8. Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

    真的机缘巧合! 写这篇文章完全是机缘巧合,想想已经好长时间没有关注过Django了,虽然Django一直霸占着Python Web开发界的王座,但是由于各种原因自从使用Asyncio以来一直使用Aio ...

  9. 从入门到真香!java截取字符串前两位

    一.对Kafka的认识 1.Kafka的基本概念 2.安装与配置 3.生产与消费 4.服务端参数配置 二.生产者 1.客户端开发 必要的参数配置 消息的发送 序列化 分区器 生产者拦截器 2.原理分析 ...

最新文章

  1. 全球首次!AI研制新药物仅需18个月,李开复梁颕宇:AI医疗已突破,但只打1分...
  2. linux 第一个内核模块Hello World
  3. Taro+react开发(12)--注意引入user
  4. echo显示文字后不换行(sep /p 和 echo 命令的一些细节)
  5. 35款安卓App被通报窃取个人隐私!快看看你的手机里有没有
  6. vue element menu侧边导航栏 数据渲染
  7. openURL的使用(iOS调用系统电话、浏览器、地图、邮件等)
  8. java 云 代码_我 - java代码库 - 云代码
  9. vb连接mysql数据库报错_vb6连接mysql数据库
  10. 学习python笔记01
  11. Android List的混排 随机排序
  12. 服务器虚拟机装nas,nas虚拟主机(nas为什么要装虚拟机)
  13. 【node.js】报错Cannot mix different versions of joi schemas解决方法
  14. java助教面试自我介绍,面试英语助教自我介绍
  15. 2021自学考试计算机应用基础,2021年高等教育自学考试计算机应用基础试题及答案.doc...
  16. linux操作系统没声音,Linux系统下没有声音的解决方案
  17. 炫酷的网页特效展示分享
  18. Adobe Creative Suite 3: Ready this year?
  19. iphone界面元素的尺寸[转]
  20. 水个题---英尺换算

热门文章

  1. 安卓常用实用功能代码片大全(长期更新)
  2. CentOS 下的apache服务器配置与管理
  3. 10个程序员需要收藏的良心网站,你绝对没有用过
  4. android app初始化sdk,Android SDK使用系列教程——2.SDK初始化和常用类介绍
  5. jpg转word的简单方法
  6. [文档管理]QuickOffice轻松文档
  7. android 应用程序安装卸载(安装应用宝后自动弹出卸载应用宝)
  8. matlab绘制星形线并求面积,利用曲线积分,求下列曲线所围成的图形的面积: (1)星形线x=acos3t,y=asin3t,0≤t...
  9. Java常用类(数学相关类 /字符串相关类/时间相关类/格式化类)
  10. Java常用类:时间相关类