JDK新特性

一、长期支持版本

long term support会一直保持维护

二、Record(Since JDK16)

Record由于不可变性帮助我们安全解决改变属性导致BUG,同时不可变性对于编译器也很友好
看上去像一个方法,实际是一个定义
最常见的用法

三、Sealed Class/Interface(Since JDK17)

Library开发者定义了一个接口,但是无法控制别人怎么实现这个接口而导致BUG    

3.1)游戏开发者限定角色场景

Ps:很多框架比如Mybatis、Spring有一些API只是开发团队自己想用的,但没有Sealed之前很多都是public的接口,在框架进行大版本的更新时使用者可能会因为对之前版本的API进行了接口的自定义实现而导致兼容性问题

这些限定类是ADT(代数系统大小),可以计算所有不同组合数,比如Character只会有Warriors、Wizard、Thief三种相加可能范围,而Warriors具有两个int属性会有21亿平方的相乘可能范围

3.2)Record结合Sealed——四则运算

Record不可以继承但可以implements

四、CompletableFuture(Since JDK8)

CompletableFuture API分为以上三大类
有点像CPS,CompletableFuture自己知道什么时候做完之后再去做你需要它执行的内容
上述代码简洁且语义清晰体现了依赖关系(join()类似get()只不过Exception不一样)

五、PatternMatching for InstanceOf(Since JDK16)

InstanceOf只是PattenMatching的一小部分功能,强大的是它的解构功能,下图为例假如匹配成功可以直接进行各种操作不需要强转

六、Switch expressions(Since JDK14)


七、小功能

teeing和map一样可以无限用下去
方便直接从外部粘帖
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 在本文中,我将描述自第8版以来Java最重要且对开发人员友好的功能。为什么会有这样的主意?在Web上,您可以...
    废柴程序员阅读 583评论 0 3
  • 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升...
    timothyue1阅读 384评论 0 1
  • 动力节点springboot3视频笔记第一章 1.JDK关注的新特性 1.1 搭建学习环境 JDK:JDK19Op...
    喜缘多阅读 281评论 0 0
  • 序 本文主要讲述一下Java16的新特性 版本号 从version信息可以看出是build 16+36 特性列表 ...
    go4it阅读 4,940评论 0 0
  • 简介 在2021年3月16日,JDK的迎来了它的一个新版本JDK16,虽然JDK16不是LTS版本,但是作为下一个...
    flydean程序那些事阅读 375评论 0 0

友情链接更多精彩内容