
1.5 Java开发环境的构建
1.5.1 选择合适的JDK版本
JDK是最基础的Java开发工具,很多Java IDE工具(如Eclipse、IntelliJ IDEA和NetBeans等)的运行都需要依赖JDK。
从是否收费的维度来看,JDK可分为两个版本,分别是Oracle JDK(一般简称JDK)和OpenJDK。
• Oracle JDK是JDK的收费版本,其中包含Oracle公司的商用技术。Oracle公司仅允许少数的免费使用场景,如个人用户使用或支持开发工作使用(调试、支持IDE软件运行等)。
• OpenJDK是JDK的免费开源实现,是Sun公司于2006年开始的一系列努力的成果。目前,Oracle公司每次在发布JDK时,都会同时发布对应的OpenJDK。一些大型的技术公司会在OpenJDK的基础上开发自己版本的JDK,如阿里巴巴的Dragonwell和亚马逊的Corretto等。值得一提的是,自Games Gosling加入亚马逊,他负责的一项重要工作就是推动Corretto的发展。
从是否持续维护的维度来看,JDK可以分为LTS版本和非LTS版本。2017年,Oracle公司公布了新的JDK版本发行周期,计划每3年发布一个LTS版本,每半年发布一个非LTS版本。
• LTS表示长期支持版,即在截止日期前,会持续修复该版本的Bug,并发布免费的修复版。例如,JDK 17是截至2022年10月最新的LTS版本,发布于2021年9月,结束支持的日期为2029年9月。
• 非LTS版本的维护期较短,一般到下一个非LTS版本发布时结束。例如,JDK 19是截至2022年10月最新发布的非LTS版本,发布于2022年9月,结束支持的日期为2023年3月。
截至2023年2月仍处于维护期内的LTS版本包括JDK 8、JDK 11和JDK 17。
个人开发者在学习Java时,选择Oracle JDK或OpenJDK均可(建议选择LTS版本)。在生产环境中普遍使用LTS版本,使用非LTS版本的占比仅为2.7%左右。目前较为流行的LTS版本是JDK 8和JDK 11,占总使用量的90%以上。
本书中的案例采用Oracle JDK 11编写,具体版本为JDK 11.0.10。