新版任你发,我用Java 8

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

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

最先的JDK发布于1996年,相信比不少读者的年龄都要小,其发布频次以下:编程

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的使用者最多。

随便放两个统计结果你们感觉下:

从这些统计中,能够看到使用的最多的仍是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日。

-w543

另外,在两个长期支持的版本 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。

相关文章
相关标签/搜索