Java版本更新的背景简单介绍
Java在2018年3月发布了Java11-长期支持版本,之后每6个月加一个版本。没三年发布一个长期支持版本(LTS)。现在已经是Java14了,明年3月刚好三年要发布下一个LTS版本是Java17。
为啥这么搞呢?
Java现在迭代的尿性是:重要的特性一般开发周期长,到下一个LTS版本发布,中间的版本是一些其他的特性,给大家尝尝鲜。这样新功能源源不断,给那些鸡血程序员用来爽的。我这种普通程序员一般给公司做做curd,新特性啥的用不到也没空管。。到LTS版本再一起研究。
那么应该怎么选择版本呢?
简单的来说:生产要用LTS版本。如果自己随便玩一玩,越新鲜越好。
为啥呢?
现在的中间版本经发布后只支持六个月,而后面再出现bug啥的Oracle就不管你了。比如说现在最新的是Java14,你拿来搞生产了,出了问题严重的安全问题,然后Oracle默默的在Java11里面修好了,你咋办。。退回去11版本?哪有这种降级 的,万一不兼容 了咋办?还是先将就着再等Oracle出15个版本?就是这么纠结。。大家来看看Java11诞生以来修过多少bug了(下图来自:https://eng.wikipedia.org/wiki/java_version_history)。。你还敢用不再支持的中间版本吗?
--------------------------------- 简单描述下新特性---------------------------------------
新特性很多(Java9有81项JEP),列举重点的特性,新特性篇幅较长,另外一篇做详细解析
Java 9
- 引入了模块化(JPMS)
- JShell
- Collections类增加了简单的初始化方法of()
- G1作为默认垃圾回收器
Java 10
- 局部变量类型推导 - 可以使用var声明任何变量
- Collectors的加强
Java 11
- 各种加强: Stream, String, Collection
- 标准化HTTP Client