6

Java14 新特性

 3 years ago
source link: https://tomoya92.github.io/2021/02/19/java14/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

作者:朋也

日期:2021-02-19

版权声明:自由转载-非商用-非衍生-保持署名( 创意共享3.0许可证

  • instanceof 模式匹配 -> 替换强制类型转换
  • NullPointException异常信息更详细
  • ZGC可在Macos和Windows上使用

以下内容整理自尚硅谷的视频教程

instanceof 模式匹配 -> 替换强制类型转换

用处:可以省去强制转换

yAjuu2F.png!mobile

NullPointException异常信息更详细

启动时添加一个启动参数可以让空指针异常信息更完整

在启动程序的时候,添加上 -XX:+ShowCodeDetailsInExceptionMessages

Vb2uUnA.png!mobile

Record(官方的Lombok)

新增的一个关键字record,跟class,interface同一级别

这货就是为了不用写setter, getter方法而存在的,用法如下

以前定义一个实体类带setter, getter的写法如下

qiIjYba.png!mobile

用上 record 后的写法

YreEvuZ.png!mobile

Person.class内容

aABJN3E.png!mobile

可以看到,jdk在编译的时候做了跟lombok一样的事情

问题:

  • record类不能继承其它类(因为record反编译过来后就是个final类)
  • record类不能再被abstract修饰(因为record本身就已经继承了Record类)

switch语法糖

switch的语法糖已经不再是实验性质的了

用法如下图

zmuERzQ.png!mobile

且它还有返回值,可以使用变量接收

3Qnyu22.png!mobile

使用yield返回默认值,或者不使用 -> 直接使用 : 也可以配合着yield返回值

FjeUNr2.png!mobile

多行文本

java程序员垂涎已久的功能,终于添加上了,用法如下

YRjeM3R.png!mobile

ZGC可在Macos和Windows上使用

号称最牛逼的垃圾回收机ZGC在jdk14以前还只能用在linux上,14开始可以在macos和windows上用了

QBbYfeA.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK