11

新版任你发,我用Java 8!

 4 years ago
source link: http://zhuanlan.51cto.com/art/202003/612977.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最近,新版本的JDK又双叒叕发布了,目前已经JDK 14 了,从2017年8月份开始,JDK的更新频率变成了每半年一次,将固定在每年的3月份和9月份发布新版本。

v2MRvqi.jpg!web

按照这个频率,过不了多久,JDK 20 就要推出了…

最早的JDK发布于1996年,相信比很多读者的年龄都要小,其发布频次如下:

nYRfUze.jpg!web

Java 8 与 Java 11 为当前提供支持的LTS(长期支持)版本;

2018年9月,随着 Java 11 的发布,Java 10 自当日起不再被支持。

Oracle 于 2019 年 1 月前为商业用途中的 Java 8 长期支持,而针对非商用的更新将继续提供,直至 2020 年 12 月;

此外,AdoptOpenJDK 也为 Java 8 提供免费更新。

针对 Java 11 的长期支持将不再由 Oracle 提供,而是改由 OpenJDK 社区的 AdoptOpenJDK 提供。

各版本重大更新内容

从Java第一个版本发布到现在,已经有24年了,24年中共发布了14个版本,那么,。让我们细数一下各个版本中增加的主要特性有哪些。

JDK 1.0

第一个版本于1996年1月23日发布,叫做为Oak。而真正第一个稳定的版本JDK 1.0.2,被称作Java 1。

JDK 1.1

  • 内部类
  • JDBC
  • JavaBeans

J2SE 1.2

  • Java集合框架
  • Swing图像化API
  • JIT编译器

J2SE 1.3

  • HotSpot JVM
  • JNDI
  • JPDA
  • 用于实现动态代理的类

J2SE 1.4

  • assert 关键字
  • 异常链
  • NIO

J2SE 5.0

  • 泛型
  • 元数据
  • 自动封箱、自动拆箱
  • 枚举
  • 可变参数函数
  • 强化for each循环
  • Swing
  • java.util.concurrent包

Java SE 6

  • 支持JDBC 4.0

Java SE 7

  • 在switch中使用字符串类型
  • try-with-resources
  • 新的invokedynamic字节码指令
  • 允许在数值字面值中加入下划线

Java SE 8

  • Lambda表达式
  • Nashorn
  • 移除了虚拟机内存管理中的永久代
  • 新的日期和时间 API

Java SE 9

  • Jigsaw项目中将JDK模块化
  • jshell
  • jlink

Java SE 10

  • 局部变量类型推断
  • 适用于G1的多线程完全垃圾回收

Java SE 11

  • ZGC
  • Epsilon

Java SE 12

  • Shenandoah
  • Switch 表达式(预览)

Java SE 13

  • Text Blocks(预览阶段)
  • 动态 CDS 归档

Java SE 14

  • Records
  • Switch 表达式
  • 友好的空指针异常
  • 打包工具

新版任你发,我用Java 8

从Java 8推出至今,已经很快的发展到了Java 14了,很多人做过调查,最终结果显示都是Java 8的使用者最多。随便放两个统计结果大家感受下:

VjYZz2n.jpg!web

从这些统计中,可以看到使用的最多的还是Java 8,其次就是Java 11。之所以大多数人选择Java 8和Java 11 ,是因为这两个版本都是目前官方宣布长期支持的版本。目前的Java 8和 Java 11 在2023年之前都会得到官方的持续支持。而刚刚在3月份发布的JDK 14,在今年的九月份之后就不再维护更新了。其他在JDK 8 之后发布的非LTS的版本的更新维护时间就是本年左右。在JDK的官网上可以看到JDK 8的更新记录,最近一次是2020年1月14日。

j6nmAfU.jpg!web

另外,在两个长期支持的版本 JDK 8 和 JDK 11中,相比之下肯定是JDK 11 的新特性更多一些,但是并没有真的非升不可的新特性。

一方面在JDK 8 是在JDK 7 推出三年后才推出,其中包含了很多重要的语言特性和技术升级,比如函数式编程,还有一些小改动如HashMap引入红黑树等。、

所以JDK 8使用者比较多,另外一方面,JDK 的升级是一项耗时耗 力的大工程,如果没有足够多的好处,很多公司和组织是不愿意大范围升级的。

所以,可以预见,在接下来的很长一段时间中,JDK 8 将仍然是主流版本。不过值得一提的是,本次发布的JDK 14 确实增加了几个可圈可点的新特性。

最后,新版本层出不穷,到底要不要升级?

作者认为,如果生产环境中使用的是Java 8,目前完全没必要升级,如果要升级的话,首选Java 11;但是,作为开发者,倒是自己可以本机安装新版的JDK,学习并了解下新特性。

SO,新版任你发,我用Java 8。

所以你正在使用的是哪个版本的JDK呢?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK