前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 17 更新(1):更快的 LTS 节奏

Java 17 更新(1):更快的 LTS 节奏

作者头像
bennyhuo
发布于 2021-09-29 07:04:25
发布于 2021-09-29 07:04:25
1.6K00
代码可运行
举报
文章被收录于专栏:BennyhuoBennyhuo
运行总次数:0
代码可运行

关键词:Java Java17

2021 年 9月 23 日,Java 17 发布了,更新的内容还真不少,足足肝了我一星期才把这些内容整理完。

朋友们大家好,我是 bennyhuo,今天我们来聊聊 Java 17 的更新。

Java 17 更新了,作为一个 10 年的 Java 程序员,还是有亿点点兴奋的,Kotlin 的群里面也是各种讨论 Java 的新特性。

我记得五六年前,谈论起当时刚刚进入人们视野不久的 Java 8,大家还是一副“我们公司还在用 Java 6” 的表情,现在想想 RetroLambda(https://github.com/luontola/retrolambda) 都已经是很久远的事儿了:

现在的 Java 8 可能大概相当于那时候的 Java 6,在使用上已经非常普遍了,甚至已经有一点儿过时:就连 Android 最近也开始从最新的 Android Studio 版本开始把 Java 11 作为默认版本了。

现在 Java 17 的发布,让 Java 11 成了 LTS 系列的次新版本,Java 8 离老破小的距离也越来越近了 —— 不仅如此,Java 官方还想要加快这个节奏,因为他们打算把 LTS 发布的节奏从三年缩短到两年。这么看来,下一个 LTS 将会是在 2023 年 9 月发布的 Java 21。

想当年,Java 的版本发布以前是何其佛系,版本号也是 1.x 这样一路走来,从 1.0 (1996 年) 发布到 1.5(2004年) 就花了近 10 年,然后又花了差不多 10 年到了 1.8(2014 年)。这其中从 1.5 开始启用了新的版本号命名方式,即 Java SE 5,Java SE 8 这样的叫法。直到现在,2021 年,不管 Java 有没有变化,Java 的版本号已经发生了质的飞跃。

从 2017 年 9 月发布 Java 9 开始,Java 进入每 6 个月一个版本的节奏。这对于开发者来讲是好事,喜欢尝鲜的开发者可以很快地在非 LTS 版本当中体验到 Java 的新特性。

做出这个改变的时间点是非常微妙的,因为 Kotlin 1.0 是 2016 年 2 月发布的,Google 在 2017 年 5 月官宣 Kotlin 为 Android 的一级开发语言(首选语言的宣布是在 2019 年的 IO 大会上)。

后来我们就看到,Java 越来越像 Kotlin 了,Java 10 有了 var:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream();         // infers Stream<String>

Java 13 有了多行字符串字面量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String html = """
              <HTML lang="en">
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;

Java 14 有了 switch 表达式(12 开始预览):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int ndays = switch(month) {
    case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31;
    case APR, JUN, SEP, NOV -> 30;
    case FEB -> {
        if (year % 400 == 0) yield 29;
        else if (year % 100 == 0) yield 28;
        else if (year % 4 == 0) yield 29;
        else yield 28; }
};

Java 16 加入了类型判断的模式匹配(Java 14 开始预览),以下示例在效果上类似于 Kotlin 的智能类型转换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (obj instanceof String s) {
    System.out.println( s.length() );
}

还有数据类(Java 14 开始预览):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
record Point(int x, int y) { }
Point p = new Point(3,4);
System.out.println( p.x() );

可以说,Java 重新焕发了生机,喜欢 Java 的开发者们再也不必等待漫长的版本更新了。

然后更有趣的事情发生了。Java 就这么疯狂的发版发了三年之后,Kotlin 慌了,它终于在花了将近两年时间憋完 1.4 这个编译器重写的大版本之后,宣布后续每半年发一个版本。

哈哈,看来我再也不用发愁选题了。做为一个最近专注于发 C++ 视频的 Kotlin 补刀师,连续研究了一周 Java 17 的更新,真是给我乐坏了:你们快卷起来啊。

好了,这一篇算是这一系列的开篇,为了降低大家的阅读成本,我会把主要的更新内容,其实就是合入的 JEP 拆成了十几篇文章,后面尽快发出来。另外,有些比较有意思的内容,我也许大概率也会提供配套视频介绍,欢迎大家关注我的 Bilibili 频道:bennyhuo 不是算命的

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Kotlin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 17:和遗留 25 年的漏洞 Say Goodbye
Spring Framework 6 将采用 Java 17 和 Jakarta EE 9
逆锋起笔
2021/10/19
1.2K0
那些年,Kotlin 都截胡了哪些 Java 新特性
众所周知,Kotlin被称为最好的 Java。自 Kotlin 发布以来,凭借着其在 JVM 平台上惊人的兼容性,互操作性以及新特性支持,其迅速成为了广泛使用的 JVM 语言之一,就连 Google 也将 Kotlin 钦定为 Android 的首选开发语言。Kotlin 相对 Java 提供了非常多的特性,这些特性甚至截胡了某些 Java 即将推出的新特性,现在就让我们来盘点一下这些被 Kotlin “截胡” 的 Java 新特性吧…
HikariLan贺兰星辰
2022/11/14
8770
JDK15正式发布,划时代的ZGC同时宣布转正
2020年9月15日,JDK15正式发布,可谓如约而至。按照Java SE的发展路线图,JDK14自此停止更新。值得注意的是JDK15并非LTS版本,Oracle官方对Java SE的支持路线图如下:
YourBatman
2020/09/17
8910
JDK15正式发布,划时代的ZGC同时宣布转正
JDK的第三个LTS版本JDK17来了
2021年9月JDK17发布了,JDK17是最新的一个LTS版本。所谓LTS版本就是可以得到至少八年产品支持的版本。从2014年的JDK8,到2018年的JDK11,再到2021年的JDK17。
程序那些事
2021/11/15
1.6K0
Java 17 新功能介绍(LTS)
Java 17 在 2021 年 9 月 14 日正式发布,Java 17 是一个长期支持(LTS)版本,这次更新共带来 14 个新功能。
未读代码
2021/12/13
1.1K0
JDK17的新特性写法
JDK 17 是 Java Development Kit(Java 开发工具包)的一个版本,是 Oracle 公司提供的 Java SE(Java 平台,标准版)的一部分。以下是 JDK 17 的一些基本信息:
半月无霜
2023/11/19
8470
JDK17的新特性写法
Java 17 更新(7):模式匹配要支持 switch 啦
这一次我们来聊聊 JEP 406: Pattern Matching for switch (Preview)。这是一个预览特性。
bennyhuo
2021/10/19
3K0
Java 17 更新(7):模式匹配要支持 switch 啦
Java 17 更新(6):制裁!我自己私有的 API 你们怎么随便一个人都想用?
今天我们来聊聊 JEP 403: Strongly Encapsulate JDK Internals。这一条对于使用 JDK 内部 API 的应用场景来讲会比较受影响。
bennyhuo
2021/10/19
1.8K0
Java 17 更新(6):制裁!我自己私有的 API 你们怎么随便一个人都想用?
Java9-Java17新特性
​ 因为编程语言千千万,他们就像一个生态系统一样,新的语言会出现,旧的语言会被取代,除非它不断地演变,能跟上节奏;同理,Java也是取代了竞争对手语言,且根据编程市场不断演变才能一直存活的。
yuanshuai
2023/11/17
6910
Java9-Java17新特性
Java 17 更新(2):没什么存在感的 strictfp, 这回算是回光返照了
我们今天聊的内容来自于 JEP 306: Restore Always-Strict Floating-Point Semantics。看到这个提案的标题的时候,我就知道很多人懵了。这玩意历史感太强了,说实话我也没怎么接触过。
bennyhuo
2021/09/29
1.7K0
Java14来了!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!
Java 14 在 2020.3.17 日发布正式版了,但现在很多公司还在使用 Java 7 或 Java 8,每当看到 Java 又发布新版本心里就慌得一匹。不过此版本并不是 LTS (长期支持版) 版本,所以不要慌,我们先来了解一下好了,等 LTS 版本发布后再用也不迟。
磊哥
2020/03/22
1.1K0
Java14来了!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!
这年头,能坐上火箭的东西不多啊!Java版本号算一个!
Sun早已经不在了,如今只剩Oracle,也就是Java目前的抚养人。从2019年4月16号开始,Oracle版本的JDK,已经宣布收费,目前有更多的企业转向OpenJDK。
xjjdog
2021/12/13
4170
Java 17 更新(8):密封类终于转正
我们书接上回,继续聊 Java 17 的更新。这篇我们介绍一下 JEP 409: Sealed Classes。
bennyhuo
2021/10/19
1.6K0
Java 17 更新(8):密封类终于转正
JDK的版本迭代(JDK9 - JDK20)
这意味着Java的更新从传统的以特性驱动的发布周期,转变为以时间驱动的发布模式,并且承诺不会跳票。通过这样的方式,开发团队可以把一些关键特性尽早合并到 JDK 之中,以快速得到开发者反馈,在一定程度上避免出现像 Java 9 两次被迫延迟发布的窘况。
鱼找水需要时间
2023/05/11
1.8K0
JDK的版本迭代(JDK9 - JDK20)
Java 17 新特性,快到起飞?惊呆了!
本书最新版,主要更新了在JDK 17发布的的新特性,JDK 17是继JDK11之后的一个新的长期支持版本,免费使用至2024年9月,同时会持续更新到2029年9月。下面就一起来看看,到底更新了些什么内容:
公众号:大数据羊说
2022/07/07
1.5K0
Java 17 新特性,快到起飞?惊呆了!
拥抱变化,面向Java17,Java8-18全系列特性详解
当我们大部分Javaer还沉浸在Java 8 的特性中时,Java 19 预计在2022年9月20号发布,现在半年发布一次的节奏真让人应接不暇,况且Spring Boot 3.0开始最低版本为Java 17,Spring Security、KafKa等也都宣布在后期版本最低需要Java 17 ,所以我们恶补一下Java 8-18的特性很有必要。
阿提说说
2022/11/18
2.6K0
拥抱变化,面向Java17,Java8-18全系列特性详解
如约而至,Java 10 正式发布!
3 月 20 日,Oracle 宣布 Java 10 正式发布。 官方已提供下载:http://www.oracle.com/technetwork/java/javase/downloads/ind
程序员十三
2018/03/30
7550
如约而至,Java 10 正式发布!
继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17
新版任你发,我用 Java 8,这可能是当下 Java 开发者的真实写照。不过时代可能真的要抛弃 Java 8,全面拥抱 Java 17 了。
jinjunzhu
2022/09/23
1K0
继 SpringBoot 3.0,Elasticsearch8.0 官宣:拥抱 Java 17
Java17,有史以来最快 JDK
都说Java 8 是YYDS,那你注意到 Java 17 已经正式发布了吗?目前Java 18 也已经进入早期开发阶段。
程序员小猿
2021/10/12
2K0
300 秒快速了解 Java 9 - 16 新特性
Java 这几年的更新实在是太太太……快了,Java 8 都还没用多久,16 都已经发布了。自从 Java 8 发布了 Lambda 和 Stream 之后,Java 就像打了鸡血一样,半年一个版本的发布,生产队的驴也没这么勤快。
肉眼品世界
2021/09/27
4870
300 秒快速了解 Java 9 - 16 新特性
推荐阅读
相关推荐
Java 17:和遗留 25 年的漏洞 Say Goodbye
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档