新版任你发,我用 Java 8!

作者 l Hollis

本文经授权转载自Hollis(ID:hollischuang)

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

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

最早的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日。

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

作者简介:Hollis,一个对Coding有着独特追求的人,现任阿里巴巴技术专家,个人技术博主,技术文章全网阅读量数千万,《程序员的三门课》联合作者。

热 文 推 荐

我就不信 35 岁做不了程序员!

Kubernetes这么火你还不知道是啥?赶紧来看看吧~

数据分析师 vs 算法工程师,Python 出身的程序员如何抉择?

在非托管钱包中可能会出现价值3000万美元的BCH SIM 交换黑客攻击吗?

破解面试难题8个角度带你解读SQL面试技巧!

ATSS : 目标检测的自适应正负anchor选择,很扎实的trick | CVPR 2020

你点的每个“在看”,我都认真当成了喜欢

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值