iPhone 13 发布时,Java 17 也悄悄发布了

共 4169字,需浏览 9分钟

 ·

2021-09-21 18:32

在大家都在等 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

    JEP 409: Sealed Classes

Updates and Improvements to Libraries

    JEP 306: Restore Always-Strict Floating-Point Semantics
    JEP 356: Enhanced Pseudo-Random Number Generator
    JEP 382: New macOS Rendering Pipeline

New Platform Support

    JEP 391: macOS AArch64 Port

Removals and Deprecations

    JEP 398: Deprecate the Applet API for Removal
    JEP 407: Remove RMI Activation
    JEP 410: Remove the Experimental AOT and JIT Compiler
    JEP 411: Deprecate the Security Manager for Removal

Future Proofing Java Programs

    JEP 403: Strongly Encapsulate JDK Internals

Previews and Incubators for Later JDK Releases

    JEP 406: Pattern Matching for switch (Preview) 
    JEP 412: Foreign Function and Memory API (Incubator) 
    JEP 414: Vector API (Second Incubator)

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 CircleRectangleSquare 
{ ... }

你看,用 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/

如果大家有其他比较重点可以关注的信息源,一定要告诉我。

第二就是如何看懂他们,当然是学英语啦!

第三就是如何更好地解读他们

如果我能像写破玩意这种文章一样,给大家讲解最前沿发生的事情,那我觉得真正做到了有价值的产出。

如何做到呢?提升技术深度,并且通过多看多写,来扩大技术视野,相信会越来越好的!

浏览 38
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报