在 JDK 版本的世界里,从来都是 Oracle 发他的新版本,我们继续用我们的老版本。三年之前用 JDK 7,后来终于升级到了
JDK 8。自从升级了没多久,JDK 就开始了半年发一个新版本的节奏,陆续发布了 9
、10、11、12,直到前两天(2019年9月17日)发布了 JDK13。
2018年12月,由 Snyk 和 The Java Magazine 联合推出发布的 2018 JVM 生态调查报告 显示有 70% 的用户使用 Oracle JDK,21% 的用户使用 OpenJDK。其中 Java 8 的使用者占到了 79%。
这份报告到现在为止快到一年了,猜测情况应该变化不大。所以说,现在用 Java 8 也不用慌,大部分人也都在用 Java 8。
都已经 JDK 13 了,为什么还有这么多公司使用旧版本。Java 8 已经算好的了,有的公司还在使用 7,更有甚者还在用 6,你说是不是很 6。
之所以会出现这种状况,是因为升级版本耗时费力,最重要的是有可能影响服务的稳定性,虽然说 Java 是向后兼容的,但是谁知道是不是有坑在里面。在没有重大安全漏洞或重大性能提升的情况下,大多数公司还是以稳定性为主,既然 Java 8 已经能满足业务需求了,那就用它好了。
现在又增加了原因,就是从今年 1 月份开始对 Oracle JDK 的商业用途进行收费。
收费是近两年对 Oracle JDK 的一大改变,还有一个就是发版方式的改变。
从今年1月份开始,Oracle JDK 开始对 Java SE 8 之后的版本开始进行商用收费,确切的说是 8u201/202 之后的版本。如果你用 Java 开发的功能如果是用作商业用途的,如果还不想花钱购买的话,能免费使用的最新版本是 8u201/202。当然如果是个人客户端或者个人开发者可以免费试用 Oracle JDK 所有的版本。
在 JDK 9 发布之前,Oracle 的发版策略是以特性驱动的,只有重大的特性改变才会发布大版本,比如 JDK 7 到 JDK 8,中间会发多个更新版本。而从 JDK 9 开始变为以时间驱动的方式。发布周期为6个月一个大版本,比如 JDK 9 到 JDK 10,3个月一次补丁版,3年一个 LTS(长期支持版本)。
发版时间稳定了,使用者就可以相应的根据发版节奏调整所使用的 Java 版本了。但是付费使用好像又增加了成本,一直免费使用的东西,突然收费了,好像有点接受不了,尤其对于小公司而言。
上面所说的都是 Oracle JDK 。那么如果既想要更新版本又不想花钱怎么办呢,当然也是有办法的。可以选择 Open JDK。
Open JDK 是完全开源免费的,由 Oracle 以及 Redhat 等开源组织维护。Oracle JDK 只是一个 Open JDK 的发行版。他们两个的关系就好像是原生安卓系统和各个手机厂商定制的操作系统的关系。Oracle JDK 就对应原生安卓系统,比如小米的 MI UI 就对应 Oracle JDK。另外,除了 Oracle JDK,还有其他的 Open JDK 的发行版,比如 AWS 的 Amazon Corretto,阿里巴巴的 Alibaba Dragonwell 等等。
红帽将接替 Oracle 维护 JDK 的长期支持版,比如 OpenJDK 8 和 OpenJDK 11,并且它和 Oracle JDK 的差别已经非常小了,可以放心使用。
然而,对于新版本的新特性,我也只是看一看,学一学,然后专心的用 Java 8 开发。