JDK发展历史和开源
- 2006年SUN公司开源JDK,成立OpenJDK组织。
- 2009年Oracle收购SUN,加快JDK发布周期。
- Oracle JDK与OpenJDK功能基本一致,但Oracle JDK提供更长时间的更新支持。
JDK版本特性
- JDK11是长期支持版本(LTS),包含17个JEP(JDK Enhancement Proposals)更新。
- JDK17是最新的LTS版本,提供8年的维护计划。
JDK8与JDK17的比较
- JDK8是目前多数系统的首选,但升级到高版本JDK是趋势。
- JDK17包含近200个有价值的新特性。
核心JEP功能介绍
-
Java平台模块化系统(JPMS)
- JDK9引入,通过Jigsaw项目实施,是Java生态系统的重大改变。
- 模块化带来强封装性、定义良好的接口和显示依赖。
-
垃圾回收器优化
- ZGC:JDK11引入,支持低延迟和大内存服务。
- G1垃圾回收器:多次优化,成为兼顾延迟和吞吐的最佳选择。
-
诊断和监控优化
- Java Flight Recorder和Java Mission Control提供性能分析工具。
- 统一JVM日志框架,简化日志记录和分析。
-
语法和方法改进
- 集合工厂方法、接口私有方法、改进的Stream API等。
- JShell:交互式编程环境工具。
-
性能特性
- 字符串压缩(Compact Strings)减少内存使用。
- Java Flow API支持异步非阻塞数据处理。
- 新一代JIT编译器Graal提供更好的性能优化。
JDK升级挑战
- 从JDK8升级到JDK17面临挑战,需要填的坑较多。
- 文章作者分享了线上环境使用新特性的心得。
总结
- JDK9到JDK17的更新反映了Java生态的活力。
- 新特性意味着更优的性能和开发效率。
- 鼓励开发者尝试高版本JDK,同时注意新特性的学习和应用。
其他重要信息
- Spring6和SpringBoot3支持的最低版本为JDK17。
- Oracle JDK8的开源协议支持的最高免费版本为jdk1.8.0_202。