iPhone 13 发布时,Java 17 也悄悄发布了
在大家都在等 9 月 15 号凌晨一点 iphone 13 的发布会的时候,9 月 14 号,Java 17 发布了。
登陆 oracle 官方新闻站就可以看到官宣。
点进去,可以看出这一版的 JDK 是 LTS 版本,也就是长期支持版。
也就是在 2029 年 9 月之前为客户提供安全(security)、性能(performace)和错误修复(bug-fix)更新。
接下来讲了加强对用户的 LTS 支持。
大致的意思就是,原来每个长期版本的时间间隔为三年,这次将会改为两年。
我们看历史的 oracle JDK 发布时间表。
而下一个 LTS 版本将是 Java 21,在 2023 年 9 月发布。
时间缩短为了两年。
接下来,文中说加速 Java 在云中的使用。
具体是推出了一个 Oracle Java Management Service,是一款云原生基础设施服务。
具体介绍可以看官方博客:
https://blogs.oracle.com/java/post/announcing-java-management-service
或者直接看它的 DOCS 手册:
https://docs.oracle.com/en-us/iaas/jms/doc/getting-started-java-management-service.html
接下来就是大家通常关心的新特性了。
我先把英文版列出来。
Java Language Enhancement
Updates and Improvements to Libraries
New Platform Support
Removals and Deprecations
Future Proofing Java Programs
Previews and Incubators for Later JDK Releases
JEP 叫做 JDK Enhancement Proposals,翻译过来是 JDK 改提案,也就是我们通常说的 JDK 新特性。
而查看这些新特性的官方说明的方式是。
https://openjdk.java.net/jeps/提案号
比如我们想看看这次的第一个新特性,JEP 409: Sealed Classes,叫做密封类,就访问这里即可。
https://openjdk.java.net/jeps/409
如果你英文比较好,这绝对是最方便的方法,而且比任何其他解读都更早、也更专业。
我们尝试看下这个文档。
想知道密封类这个东西是干嘛的,先扫一眼概述。
大意就是说,密封类可以对继承或者实现他们的类或接口进行限制。也就是说,要想继承一个 sealed class,必须被这个 sealed class 声明了允许继承才可以。
具体怎么限制呢?在下面的详情小结展开了介绍。
它给我们举了例子。
比如一个 Shape 类,只允许特定的类去继承。
package com.example.geometry;
public abstract sealed class Shape
permits Circle, Rectangle, Square { ... }
你看,用 permits 关键字,配合 sealed 关键字,就把 Shape 这个类限制住了,只能由 Circle, Rectangle, Square 这些类继承。
当然,这得是同包下的,如果是不同包下的,写全路径就好了。
package com.example.geometry;
public abstract sealed class Shape
permits com.example.polar.Circle,
com.example.quad.Rectangle,
com.example.quad.simple.Square { ... }
剩下的大家感兴趣自己去研究下吧,因为我也看不懂了。
更气的是,这篇文章到这里就结束了。
写这类文章还是太嫩了,希望大家多多包涵。
不过不知道大家有没有发现,我在往某个方面做尝试,包括之前的 SpringOne 大会,iPhone1 回顾,还有今天的 Java 17 发布。
就是技术类新闻的分享与解读,说好听点可以叫技术最前沿。
但有人说技术类新闻应该有好多人在写了吧?不,现在的所谓技术新闻,大多数是互联网新闻了,比如京东涨薪了、字节降薪了、阿里破冰了、取消 996 了等。
我想写的是技术相关性更强一些的事,而不是泛互联网圈的事。比如之前的 SpringOne 我就发现几乎没有人写,但其实它在 Spring 官网已经挂好几天了,Spring 社区里算是个不小的事,非常多的技术人还是很关注且很期待的。
再比如这次的 Java 17,也几乎很少有平台来说这个事,也可能是被 iPhone 13 的风头给盖过了。
所以我希望在这方面做些努力,看多了,技术视野自然就广阔些。
记得之前看过周志明老师的一次技术分享,主题是 Java 在云原生时代何去何从,周老师的知识面把我震住了,近期技术圈发生的事情张口就来,而且他也能用自己的技术深度与视野把他们很好地串联起来。
话说回来,要想写好这类文章,还是需要日积月累。
我觉得有三点很重要。
第一就是如何寻找一手新闻资料的信息来源。
这里我整理了一些能代表前沿技术动态的公司的新闻发布站。
Intel 中国新闻发布室:
https://newsroom.intel.cn/
AMD 新闻中心:
https://www.amd.com/zh-hans/corporate/newsroom
NVIDIA 新闻中心:
https://www.nvidia.cn/newsroom/
CNCF 新闻:
https://www.cncf.io/announcements/
Oracle 新闻:
https://www.oracle.com/news/
Apache 新闻:
http://www.apache.org/index.html#news
Adobe 新闻:
https://www.adobe.com/cn/about-adobe/newsroom.html
IEEE 新闻:
https://www.ieee.org/about/news/index.html?WT.mc_id=ab_lp_news
Spring 官网:
https://spring.io/
Apple 新闻:
https://www.apple.com.cn/newsroom/
Docker 新闻:
https://www.docker.com/company/newsroom
openAI 新闻:
https://www.openai.com/newsroom/
如果大家有其他比较重点可以关注的信息源,一定要告诉我。
第二就是如何看懂他们,当然是学英语啦!
第三就是如何更好地解读他们。
如果我能像写破玩意这种文章一样,给大家讲解最前沿发生的事情,那我觉得真正做到了有价值的产出。
如何做到呢?提升技术深度,并且通过多看多写,来扩大技术视野,相信会越来越好的!