编程语言
首页 > 编程语言> > 这年头,能坐上火箭的东西不多啊,Java版本号算一个

这年头,能坐上火箭的东西不多啊,Java版本号算一个

作者:互联网

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

Sun早已经不在了,如今只剩Oracle,也就是Java目前的抚养人。从2019年4月16号开始,Oracle版本的JDK,已经宣布收费,目前有更多的企业转向OpenJDK。

Java8版本之后,Java开启了每半年升级一次版本的速度,版本号坐上了火箭!但这么多版本并不是每个都长期维护的,我们还是要盯紧它的LTS版本。目前的LTS版本有:7、8、11、17,跨度还是很大的。

1、历史

首先来看一下Java的历史,这带给我们饭碗的技术到底是什么时候诞生的。

小碎步越来越快,好怕很快2位数装不下Java的版本号。

目前Java的版本已经更新到17版本,但市场主流还是使用的JDK8。

2、最近更新

有些我们现在认为理所当然的功能,在Java的早期版本是没有的。我们从Java7说起。以下内容仅供参考,详细列表见openjdk JEP列表。

https://openjdk.java.net/jeps/0

2.1、Java7

Java7增加了以下新特性。

2.2、Java8

Java8也是一个重要的版本,在语法层面有更大的改动,支持了lamda表达式,影响堪比Java5的泛型支持。

2.3、Java9

2.4、Java10

2.5、Java11

2.6、Java12

2.7、Java13

2.8、Java14

OpenJDK 64-Bit Server VM warning: Ignoring option UseConcMarkSweepGC; support was removed in 14.0

2.9、Java15

2.10、Java16

2.11、Java17

3、展望

有点规模的互联网公司,行事都会有些谨慎。虽然JVM做到了向下版本的兼容,但是有些性能问题还是不容忽视,尝鲜吃螃蟹的并不是很多。

现在用的最多的,就是Java的8版本。如果你服务器上用到了这个,那么用的最多的垃圾回收器就是CMS,或者G1。随着ZGC越来越稳定,CMS终将会成为过去式。

目前,最先进的垃圾回收器,叫做ZGC。它有3个flag:

每一个版本的发布,Java都会对以下进行改进:

  1. 优化垃圾回收器,减少停顿,提高吞吐

  2. 语言语法层面的升级,这部分在最近的版本里最为明显

  3. 结构调整。减少运行环境的大小,模块化

  4. 废弃掉一些承诺要废弃的模块

那么JVM将向何处发展呢?以目前来看,比较先进的技术,就有刚才提到的垃圾回收阶段的 ZGC ,能够显著的减少 STW 的问题;另外, GraalVM 是Oracle创建的一个研究项目,目标是完全替换HotSpot。它是一个高性能的JIT编译器,接受JVM字节码,并生成机器代码。未来,会有更多的开发语言,运行在JVM上,比如python、ruby等。

Poject Loom 致力于在JVM层面,给予Java 协程 (fibers)的功能,Java的程序的并发性能会上一个档次。

Java版本大部分是向下兼容的。能够做到这个兼容,是非常不容易的。但Java的特性越加越多,如果开发人员不能进行平滑的升级,会是一个非常严重的问题,JVM也将会在这里花费非常大的精力。

那JVM将聚焦在哪些方面呢?又有哪些挑战?我大体总结了几点:

4、小结

Java9之后,已经进入了快速发布阶段,大约是每半年发布一次。但一个奇怪的现象就是,好像大家都在用Java8,风吹不倒雨打不动。任你版本随意更新,我自岿然不动。

对Java来说,现在谈革新还为时太早,什么时候大家有积极性把Java8替换下去,才算是Java的一次涅槃吧。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

标签:JEP,Java,版本,版本号,这年头,支持,JVM,ZGC
来源: https://blog.csdn.net/mxy2404830/article/details/121873045