记录Java
的版本特性
- enum
- 泛型
- 自动装箱与拆箱
- 可变参数
- 增强循环
- 支持脚本语言
- JDBC4.0API
- 支持try-with-resources
- switch语句块增加String支持
- NIO2.0包
JDK 1.8 - LTS
- lambda表达式
- Stream API
- 新的日期时间的API
- 默认/静态方法
- 方法引用
- Optional
- JVM的新特性
使用元空间Metaspace
代替持久代(PermGen space
),JVM参数使用-XX:MetaSpaceSize
和-XX:MaxMetaspaceSize
设置大小
- 模块化系统
- 不可变集合
- 接口私有方法
- 多版本兼容Jar包
- try-with-resources的改进
- Stream API 更新
- Optional更新
- JShell
- 局部变量的类型推断
- 不可变集合 更新
- Optional 更新
orElseThrow()
- 并行全垃圾回收器G1
- 线程本地握手
- 其他
- 基于 Java 的 实验性 JIT 编译器
- 类数据共享
- Unicode 语言标签扩展
- 根证书
- 基于时间(Time-Based)的版本控制模型
JDK 11 - LTS
- String API更新
- Lambda 参数的局部变量语法
- ZGC
- Epsilon GC
- 单文件java命令直接编译运行
- HTTP Client标准化
- switch 增强
- NumberFormat - 数字的格式化
- Files.mismatch - 文件比较
- String API更新
- Stream Teeing Collector
- 其他
- 支持unicode 11(684个新字符、11个新blocks、7个新脚本)
- JVM 常量 API (主要在新的java.lang.invoke.constant包中定义了一系列基于值的符号引用类型,能够描述每种可加载常量。)
- Shenandoah GC(低暂停时间垃圾收集器)
- G1 收集器提升 (可中止的混合收集集合、及时返回未使用的已分配内存)
- 默认CDS档案
- JMH 基准测试
- switch表达式引入yield
- 文本块
- ZGC 增强 - 释放未使用内存
- SocketAPI 重构
- instanceof模式识别 增强(预览)
- Record 类型
- 异常信息提示改进
- 其他
- G1 的 NUMA 可识别内存分配
- 删除 CMS GC
- GC 支持 MacOS 和 Windows 系统
- sealed 封闭类
- EdDSA 数字签名算法
- hidden Classes(隐藏类)
- Disable and Deprecate Biased Locking(准备禁用偏向锁)
- instanceof 自动匹配模式(二次预览)
- ZGC,一个可伸缩、低延迟的垃圾回收器。(转正)
- Text Blocks,文本功能转正(JDK 13和14预览,14终于转正)
- Remove the Solaris and SPARC Ports(删除 Solaris 和 SPARC 端口)
- 外部存储器访问 API(允许Java 应用程序安全有效地访问 Java 堆之外的外部内存。)
- Record类型二次预览(在Java 14就预览过啦)
JDK 17 - LTS
- 306:Restore Always-Strict Floating-PointSemantics / 恢复始终严格的浮点语义
- 356:Enhanced Pseudo-Random Number Generators / 增强型伪随机数发生器
- 382:New macOS Rendering Pipeline / 新的 macOS 渲染管道
- 391:macOS/AArch64 Port / macOS/AArch64 平台支持
- 398:Deprecate the Applet API for Removal / 弃用即将删除的Applet API
- 403:Strongly Encapsulate JDK Internals / 强封装JDK的内部API
- 406:Pattern Matching for switch(Preview) / Switch模式匹配(预览)
- 407:Remove RMI Activation / 删除 RMI 激活机制
- 409:Sealed Classes / 密封类
- 410:Remove the Experimental AOT and JIT Compiler / 删除实验性 AOT 和 JIT 编译器
- 411:Deprecate the Security Manager For Removal / 弃用即将删除的安全管理器
- 412:Foreign Function & Memory API(Incubator) / 外部函数和内存 API(孵化器)
- 414:Vector API (Second Incubator) / 矢量 API(二次孵化)
- 415:Context-Specific Deserialization Filters / 特定于上下文的反序列化过滤器
- JEP 400 默认为 UTF-8
- JEP 408 简单的网络服务器
- JEP 413 Java API 文档中的代码片段
- JEP 416 使用方法句柄重新实现核心反射
- JEP 417 Vector API(三次孵化)
- JEP 418 互联网地址解析 SPI
- JEP 419 Foreign Function & Memory API (二次孵化)
- JEP 420 switch 模式匹配(二次预览)
- JEP 421 弃用完成删除
- JEP 405: Record Patterns (Preview) ——记录模式
- JEP 422: Linux/RISC-V Port ——Linux/RISC—V端口
- JEP 424: Foreign Function & Memory API (Preview) —— 外部函数和内存API
- JEP 425: Virtual Threads (Preview) ——虚拟线程(千呼万唤始出来)
- JEP 426: Vector API (Fourth Incubator) ——Vector API
- JEP 427: Pattern Matching for switch (Third Preview) ——switch的模式匹配
- JEP 428: Structured Concurrency (Incubator) ——结构化并发编程