# Java 8
JDK 8为长期维护的版本(LTS)。主要有以下更新:
- JVM:删除永久代,新增元空间区
- 添加
LocalDateTime处理日期- 函数式编程(Lambda表达式)

# Java 9
主要特性:
- 集合:
List.of、Set.of、Map.of创建集合- JVM:
- 引入G1垃圾回收器
- 采用
-Xlog来控制JVM上所有组件的日志打印

# Java 10
主要特性:
- 引入
var作为局部变量声明(不可在其他地方使用,包括Lambda)- 默认根证书认证(CA证书)
- JVM:并行垃圾回收器G1
- 基于时间的版本发布模式(即每个版本都+1,并且1.8改为8这种模式)

# Java 11
JDK 11为长期维护的版本(LTS),主要特性:
- JVM:
- 引入ZGC垃圾回收器
- G1作为默认垃圾回收器
- 飞行记录器(低开销的事件收集框架,用于JVM的故障检测和分析)
- Lambda允许采用
var声明- 升级Http Client,支持异步非阻塞

# Java 12
简化Switch用法:不用显式添加
break,case的时候将:改成->即可

# Java 13
- 新增
yield关键字用于跳出Switch块- JVM:增强ZGC内存操作

# Java 14
主要特性:
- JVM
- 删除CMS垃圾回收器
- 弃用
ParallelScavange和SerialOld GC的组合使用- Switch简化板正式稳定使用

# Java 15
主要特性:
- JVM:ZGC(正式版)稳定使用
- 默认禁用偏向锁
- 隐藏类
# Java 16
JVM:
- 启动C++14语言特性
- 弹性元空间:快速回收未使用的元空间
- ZGC并发线程处理

# Java 17
JDK 17为长期维护的版本(LTS),主要特性:
- Switch增强:支持类型匹配
- 增强伪随机数生成器

# 参考
← 线程池与数据库连接池的区别 HashMap →
