Skip to content

Latest commit

 

History

History
299 lines (240 loc) · 10.5 KB

File metadata and controls

299 lines (240 loc) · 10.5 KB
title Java主要发行版概述
date 2018-11-21 02:56:52 -0800
tags
categories
Java

💠

💠 2026-06-02 21:04:57


Java主要发行版本

官网 Release Note

Java语言特性系列 5-最新

参考: JDK的版本号解惑

Java5

泛型 枚举 装箱拆箱 静态导入 foreach

Java6

JDBC4.0 JAX-WS 2.0

Java7

详情

  1. 语法糖:数字中的下划线
  2. 新的语言小特性:TWR(try with resources)
  3. 类文件格式的变化:注解
  4. JVM的新特性: 动态调用
  5. 引入G1收集器

Java8 LTS

详情

  1. 接口中新增 静态方法,默认方法
  2. 新增 Optional
  3. 新增 Lambda
  4. 新增 Stream
  5. java.time 包 增强了日期时间的处理
  • 181 子版本移除了 Derby

Java9

参考: Java 9 新特性概览

参考: Java9 新特性汇总
参考: Java 9 新特性概述
参考: 深入解读 Java 9 新特性

  1. Jigsaw 模块化
  2. Stream Optional 改进
  3. 内置 轻量级 JSON API
  4. HTTP2 客户端
  5. 云原生适配
  6. 默认GC更换为G1

Java10

参考: Java10的新特性

  1. 类型推断
  2. String 类 API 增强
  3. 集合 API 增强
  4. Stream 增强
  5. Optional 增强
  6. java javac 合并

Java11 LTS

详情

参考: Java11的新特性

  1. Flight Recorder 开源
  2. Epsilon 空gc实现: 用于性能测试
  3. HttpClient 默认实现

Oracle JDK11 Migration Guide
Jdk8到jdk11 Springboot 踩坑指南

Illegal reflective access by org.springframework.cglib.core.ReflectUtils

  • 增加JVM参数 --add-opens java.base/java.lang=ALL-UNNAMED

Java12

OpenJDK 12

  1. Switch Expressions (预览)
  2. Shenandoah GC: 低暂停时间垃圾收集器 (实验性)
  3. JVM Constants API
  4. 默认 CDS 归档
  5. G1 增强:
    • 可中止的混合收集
    • 及时返回未使用的已提交内存
  6. 微基准测试套件
  7. String API 增强: indent() transform()

Java13

  1. Text Blocks (文本块) 预览版
  2. Switch Expressions 改进
  3. 重新实现 Socket API
  4. Dynamic CDS Archives 动态归档
  5. ZGC 增强: 取消提交未使用的内存

Java14

  1. Switch Expressions 正式版
  2. instanceof 模式匹配 (预览)
  3. Records 记录类型 (预览)
  4. Text Blocks 改进
  5. NullPointerException 增强: 更详细的异常信息
  6. 删除 CMS 垃圾收集器

Java15

  1. Text Blocks 正式版
  2. Sealed Classes 密封类 (预览)
  3. Hidden Classes 隐藏类
  4. Records 改进 (二次预览)
  5. instanceof 模式匹配 (二次预览)
  6. ZGC 和 Shenandoah GC 转正
  7. 移除 Nashorn JavaScript 引擎

Java16

  1. Records 正式版
  2. instanceof 模式匹配 正式版
  3. Sealed Classes (二次预览)
  4. Vector API (孵化器)
  5. 启用 C++14 语言特性
  6. ZGC 并发线程栈处理
  7. Unix-Domain Socket Channels

Java17 LTS

  1. Sealed Classes 正式版
  2. 恢复始终严格的浮点语义
  3. Pattern Matching for switch (预览)
  4. 移除 RMI Activation
  5. 弃用 Applet API
  6. 强封装 JDK 内部 API
  7. Context-Specific Deserialization Filters

从JDK 8升级到JDK 17踩坑全过程

jdeps --jdk-internals --multi-release 17 --class-path . encloud-api.jar 分析依赖的废弃api

Java18

  1. UTF-8 默认字符集
  2. Simple Web Server 简单 Web 服务器
  3. 代码片段 Javadoc 标签
  4. Pattern Matching for switch (二次预览)
  5. Vector API (三次孵化)
  6. 弃用 Finalization 机制
  7. 互联网地址解析 SPI

Java19

  1. Record Patterns (预览)
  2. Pattern Matching for switch (三次预览)
  3. Virtual Threads 虚拟线程 (预览)
  4. Structured Concurrency 结构化并发 (孵化)
  5. Vector API (四次孵化)
  6. Foreign Function & Memory API (预览)

Java20

  1. Record Patterns (二次预览)
  2. Pattern Matching for switch (四次预览)
  3. Virtual Threads (二次预览)
  4. Structured Concurrency (二次孵化)
  5. Scoped Values (孵化)
  6. Vector API (五次孵化)

Java21 LTS

OpenJDK 21

  1. 字符串模板 语法糖 (预览)
  2. 分代ZGC
  3. 虚拟线程 正式版 协程 轻量级线程 用户级线程
  4. Sequenced Collections 有序集合
  5. Record Patterns 正式版
  6. Pattern Matching for switch 正式版
  7. Structured Concurrency (预览)
  8. Scoped Values (预览)

Java21新特性

Java22

OpenJDK 22

  1. Unnamed Variables & Patterns 未命名变量和模式 (预览)
  2. String Templates 字符串模板 (二次预览)
  3. Statements before super() 构造函数中 super() 之前可以使用语句 (预览)
  4. Foreign Function & Memory API (预览)
  5. Region Pinning for G1 GC: G1 GC 区域固定
  6. Structured Concurrency (二次预览)
  7. Scoped Values (二次预览)
  8. Stream Gatherers (预览)

Java23

OpenJDK 23

  1. Primitive Types in Patterns 模式中的基本类型 (预览)
  2. Module Import Declarations 模块导入声明 (预览)
  3. Markdown Documentation Comments Markdown 文档注释 (预览)
  4. Flexible Constructor Bodies 灵活的构造函数体 (二次预览)
  5. Stream Gatherers (二次预览)
  6. Structured Concurrency (三次预览)
  7. Scoped Values (三次预览)
  8. Class-File API (预览)
  9. ZGC: 分代模式成为ZGC的默认策略

Java24

OpenJDK 24
Oracle 正式发布 Java 24 | Oracle 中国

  1. Late Barrier Expansion for G1 G1 延迟屏障扩展
  2. Stream Gatherers (三次预览)
  3. Flexible Constructor Bodies (三次预览)
  4. Structured Concurrency (四次预览)
  5. Scoped Values (四次预览)
  6. Module Import Declarations (二次预览)
  7. Vector API (八次孵化)
  8. JEP 491: Synchronize Virtual Threads without Pinning修复了pinned问题

Java25 LTS

OpenJDK 25
Oracle 正式发布 Java 25 | Oracle 中国

JDK25更新了哪些特性?一文全部掌握-腾讯云开发者社区-腾讯云

  1. 虚拟线程和并发模型的进一步优化
  2. Loom 项目完善: 结构化并发预览
  3. JEP 506: Scoped Values: 线程间共享变量,用来替换的ThreadLocal。

误解:新 JDK 能直接跑旧代码 真相:旧代码按规范编写 + 不依赖已移除 API → 新 JDK 能跑

JDK 25 可能破坏兼容的情况:

  1. 移除已弃用 API(如 finalize() 相关)
  2. 强化模块封装(更多内部 API 不可访问)
  3. 更改默认行为(如安全策略、反射限制)
  4. 第三方库未适配
    # 1. 扫描已弃用 API
    jdeprscan --release 25 your-app.jar

    # 2. 检查非法反射
    java --illegal-access=warn -jar your-app.jar 2>&1 | grep "Illegal reflective access"

Java26

OpenJDK 26 Oracle 正式发布 Java 26 | Oracle 中国

语言特性

  1. JEP 530: Primitive Types in Patterns, instanceof, and switch (Fourth Preview) 模式、instanceof 和 switch 中的基元类型(第四预览版),消除基元类型在模式匹配中的限制,增强编译器错误检测

性能更新

  1. JEP 522: G1 GC — Improve Throughput by Reducing Synchronization 通过双卡表减少写屏障的同步开销,提高 G1 垃圾收集器的吞吐量

Project Leyden 特性

  1. JEP 516: Ahead-of-Time Object Cache for Any GC 支持任意 GC 的提前对象高速缓存,加快 Java 应用启动速度

  1. JEP 500: Prepare to Make final Meaningful 对通过深度反射修改 final 字段发出警告,强化 Java 的"默认完整性"原则
  2. JEP 517: HTTP/3 Support for the HTTP Client API 为 HTTP 客户端 API 新增 HTTP/3 协议支持,降低延迟
  3. JEP 526: Lazy Constants (Second Preview) 延迟常量 API,JVM 将其视为真正常量以实现 final 字段级别的性能
  4. JEP 525: Structured Concurrency (Sixth Preview) 结构化并发,将多线程任务组视作整体工作单元,降低线程泄漏和取消延迟风险
  5. JEP 529: Vector API (Eleventh Incubator) 向量 API,编译为 CPU 最优向量指令,加速数据分析、AI 推理

安全库

  1. JEP 524: PEM Encoding of Cryptographic Objects (Second Preview) 加密对象的 PEM 编码 API,简化加密设置和集成

清理特性

  1. JEP 504: Remove the Applet API 正式移除 Applet API(JDK 17 标记待移除)