java8到java20特性
java8
- Lambda表达式
- 函数式接口: 匿名函数
- Stream API
- 接口默认方法
- 新的日期和时间API
- 方法引用
- CompletableFuture异步增强类
- Nashorn Javascript引擎
- 新重复注解支持
- PermGen空间移除
java9
- 模块化
- 私有接口方法
- JShell
- HTTP/2客户端
- StreamAPI改进
- Collection API更新
- 多版本Jar文件
- @Deprecated注解更改
- Java文档更新
- 平台和JVM日志记录
- 反应式流API
- GC改进
- 过滤传入的序列化数据
- 弃用Applet API
- 指示字符串连接
- 增强的方法句柄
- 紧凑的字符串
- Nashorn 解析器 API
java10
- 局部变量类型推断 var
- 垃圾收集器接口
- G1的并行全GC
- 替代存储设备上的堆分配
- 将多JDK整合到单个存储库中
- 应用程序类-数据共享
- 附加Unicode语言标签扩展
- 根证书
- 基于Java的JIT编译器
- Thread-Local握手
- 删除 Native-Header生成工具
- 新的API
- 删除的API
java11
- HTTP客户端API
- 无需编译即可启动单文件程序
- 字符串API更新
- Collection.toArray
- Files.readSting()和Files.writeString()
- Optional.isEmpty()
java12
- StreamAPI中的Collectors.teeing()
- 字符串API变更
- Files.mismatch
- 紧凑数字格式
- 支持Unicode11
- 切换表达式
java13
- switch表达式改进
- 文本块改进
- 动态CDS档案
- ZGC:取消提交未使用的内存
- 重新实现 Legacy Socket API
- 其他
- java.nio
- javax.crypto
- javax.security
- javax.xml.crypto
- java.xml.parssers
- Unicode支持升级版本到12.1
- 增加对Kerberos主体名称规范化和跨领域引用的支持
java14
- instanceof 模式匹配
- 文本块
- NullPointerException:精确描述哪个变量是null
- record记录类
- switch表达式
java15
- 密封类和接口
- EdDSA算法
- 隐藏类
- ZGC不再是实验特性,但默认的回收器仍是G1
java16
- 时段支持
- 添加Stream.toList方法
- 密封类(第二次预览版)
- record记录类(标准版)
java17
- record类(记录类)
- 新的字符串方法
- 清爽的Switch表达式
- 文本块
- 密封类
java18
- 指定UTF8为指定标准javaAPT字符集
- 引入一个简单的Web服务器
- 支持JavaAPI中增加代码片段
- 方法句柄实现重新反射
- Vector API (第三版孵化)
- 互联网地址解析SPI
- 外部函数和内存API(第二版孵化)
- switch模式匹配表达式
- 弃用Finaliztion功能
java19
- Record 记录模式---------(预览版)------[405]
- Linux/RISC-V移植-----------------------[422]
- 外部函数和内存API-------(预览版)-----[424]
- 虚拟线程------------------(预览版)-----[425]
- Vector API----------------(第三次孵化)-[426]
- Switch 模式匹配---------(第三预览)----[427]
- 结构化并发--------------(孵化阶段)----[428]
java20
- Vector API(正式加入)
- 虚拟线程(第二预览版)
- 结构化的并发性
- 作用域值(孵化阶段)
- Record 记录模式(第二预览版)
- 外部函数和内存API
- Switch语句和表达式的模式匹配(第四次预览版)