
1.3 如何选择Java版本

前面我们看到了Java有很多版本,而且还在快速地不断推出新版本。对于刚入门的新手来说估计会被这些版本搞得头大,从Java 1.0到Java 16,该使用哪个版本呢?
在回答这个问题之前我们先来看一个2020年Java开发者调查报告,根据图1.3可以很清楚地看到目前大多数人还是在使用Java 8和Java 11,使用其他版本的人非常少。Java 7及以下版本实在是太旧了,所以用的人很少,而Java 9、Java 10和Java 12不是长期支持版本,所以用的人也少。此外,Java 13、Java 14、Java 15、Java 16、Java 17和Java 18几乎没人使用。剩下的Java 8和Java 11由于提供了长期支持,因此用的人最多。Java 8使用者最多的原因主要还是它是最后一个可以免费商用的版本。

图1.3 Java各版本使用率
下面我们再说一下大家比较关注的收费问题,对于上述除Java 8以外的Java商用版本,Oracle公司都是收费的。那么,如果既想用Java新版本又不想花钱,该怎么办呢?答案是使用OpenJDK,它是完全开源免费的。
OpenJDK其实是一个多方共同参与开发维护的项目,包括Oracle、Red Hat、IBM、Azul、Apple、SAP等众多知名公司都参与其中。在主流的Linux操作系统中很多使用OpenJDK作为系统自带的Java运行环境,使用OpenJDK的人也越来越多。实际上谁都可以基于OpenJDK的源码进行开发并发布,除了我们熟知的Oracle公司外,还有很多其他的公司也有自己的Java发行版本,比如阿里巴巴的Dragonwell、AWS的Corretto以及Azul的Zulu等。
重新回到最开始的问题,作为初学者应选择哪个版本的Java呢?实际上如果仅是出于学习Java的目的,那么最简单的方法就是使用最新的版本,但这里作者对版本的选择是基于如下几点考虑的。
● 首先,我们将Java 7及以下版本排除,它们实在是太旧了,对Java很多新特性和新语法都不支持。
● 其次,我们要选择长期支持的版本,即Java 8和Java 11。
● 最后,由于我们单纯是出于学习Java的目的而非商用,同时考虑学习Java最新的特性和语法,因此选择Java 11版本作为本书的标准版本。
书中所讲解的一些新工具在Java 11环境中都是支持的,同时书中涉及的所有代码都能够在Java 11环境中成功运行。
考考你
● Java版本中最多人使用的是哪两个版本?
● 随便列举几个基于OpenJDK开发的Java发行版。
● 为何本书选择Java 11作为学习对象?