[JDK 8到JDK 25]

以下是JDK 8到JDK 25主要更新的功能和特性概要:

JDK 8:

  • 引入Stream API,支持函数式编程和集合的并行操作。
  • 新的日期时间API(java.time包),替代旧的Date/Calendar。
  • Lambda表达式简化代码。
  • 默认方法允许在接口内添加方法实现。
  • 新的Nashorn Javascript引擎。
  • JavaFX 3D图形支持。
  • Compact Profiles支持减少嵌入式设备的运行时大小。[1]

JDK 9:

  • 模块系统(Project Jigsaw)引入模块化JDK。
  • JShell:Java交互式REPL。
  • 字符串内部表示优化,采用byte数组代替UTF-16以节省内存。
  • 改进的javadoc和javac工具支持。
  • 支持Unicode 8.0。
  • 序列化过滤增强安全性。
  • 改进的JMX支持和新JVM参数。[2]

JDK 10:

  • 基于局部变量类型推断的var关键字。
  • 应用类数据共享(AppCDS)。
  • 并行Full GC改进。
  • 垃圾收集器接口的增强。[3]

JDK 11:

  • 长期支持版本(LTS)。
  • 新的HTTP客户端API。
  • 新的字符串方法(如repeat、isBlank等)。
  • 改进的GC,包括ZGC实验性支持。
  • 移除Java EE和CORBA模块。[4]

JDK 12:

  • Switch表达式的预览,简化switch代码。
  • JVM常量API。
  • Shenandoah低暂停GC的实验性支持。
  • 一些性能改进。[5]

JDK 13:

  • Switch表达式第二预览,增加yield语句。
  • Legacy Socket API重写,支持未来纤程(Project Loom)。
  • 文本块(Text Blocks)预览,方便多行字符串编写。[6]

JDK 14:

  • Switch表达式正式引入。
  • Records预览,简化数据载体类的定义。
  • Helpful NullPointerException,改进NPE异常信息。
  • NVM垃圾收集改进。[7]

JDK 15:

  • 文本块正式引入。
  • 密封类(Sealed Classes)预览,限制类的继承范围。
  • 隐藏类(Hidden Classes)支持动态语言实现。
  • ZGC垃圾收集改进。[8]

JDK 16:

  • Records正式引入。
  • Pattern Matching for instanceof。
  • 新的Vector API试验。
  • 支持Unix域socket。
  • JEP 376 删除弃用的GrowableArrayTable。[9]

JDK 17:

  • LTS版本。
  • 密封类正式引入。
  • 新的macOS渲染器Metal。
  • 强化的伪随机数发生器。
  • Foreign Function & Memory API预览。[10]

JDK 18:

  • 简化的Socket绑定API。
  • UTF-8作为默认的字符集。
  • Vector API改进。
  • Simple Web Server。[11]

JDK 19:

  • 预览Virtual Threads(纤程)。
  • 预览Structured Concurrency。
  • Foreign Function & Memory API预览。
  • Vector API第四次孵化。
  • Locale构造器弃用,推荐使用Locale.of()。[12]

JDK 20:

  • Project Loom 虚拟线程进一步完善预览。
  • Pattern Matching for switch预览。
  • Record Patterns预览。[13]

JDK 21及以后版本(JDK 21-25):

  • 预计会进一步完善Project Loom(虚拟线程和结构化并发)。
  • 可能会引入更多对模式匹配的支持。
  • Foreign Function & Memory API逐步正式化。
  • 模块系统和性能优化持续改进。
  • 安全性和现有API现代化调整。

[1][2][3][4][5][8][6][9][10][11][12][13]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

posted @ 2025-10-16 17:46  十三山入秋  阅读(15)  评论(0)    收藏  举报