JDK的认识总结
2021-03-16,JDK 16正式发布了,此版本会得到短期技术支持,下一版本JDK17将会有长期的技术支持。每三年会有一个“长期支持的版本”(Long Term Support release,简称LTS),该版本会提供为期三年的支持。Java 8是一个LTS,当前的LTS是Java 11,下一个应该是Java 17。
其实Java不断的迭代,没几个月就冒出一个新版本,很多人对于java8都没有精通,但是现在16都发布了。其实从另外的角度可以知道不断迭代也可以证明它的火热程度。
企业为什么不升级?
旧项目不敢轻易懂,一升级就会遇到报错。对于企业来说,分分钟会带来兼容性问题,没有一个负责人敢做担保。而且JDK算是非常核心的基础设施,出了安全漏洞外,基本上是不会去懂生产环境的JDK了。 其次就是工作量本来就很大,如果更新了,还要全员适应,时间都要花在写新业务代码。运维和测试都需要花大量的时间。 并且Java已经非常优秀了,有数据统计80%的人还在用8,甚至有的公司还在适用7。去年1月开始,Oracle JDK 开始对 Java SE 8 之后的版本开始进行商用收费,确切的说是 8u201/202 之后的版本。
开发人员为什么坚持用Java 8呢?
上述说了企业不敢更新,那么技术员自己学习显然也没有用。即使到了2019年,网上仍然在热烈讨论关于Steam和Optional的相关问题,Baeldung自己也发布了Java8Optional 指南。
Java 9引入了模块化系统,也就是虽然看起来很好,但是对于开发人员来说,JDK一旦模块化,但是第三方库并没有模块化。如果使用了第三方,那就是自己挖坑自己填。
面对新版本的态度?
最新版本不一定就是最好的版本。Java 8被广泛应用,大家对于能找到的bug基本上都找出来了,肯定是越来越稳定的。但是作为程序员们,还是很有必要学习新版本的。
每一次Java小迭代都是修复上一版本的漏洞,基本不变JDK,尽管JDK7-JDK8的时候新增了特性。但是对于程序员们的吸收能力来说,几个小时就可以了解了。而且不管别人,每次升级都是一次学习的动力。