JDK 1.7 正式发布,Oracle 官宣免费提供!“新版任你发,我用JDK 8”或成历史?
Oracle公司JDK 17正式发布,JDK 17属于长期支持(LTS)版本,也就是获得8年的技术支持,自2021年9月至2029年9月截止。
JDK 17版本更新了很多比较实用的新特性,关于此版本的新特性,详细介绍和实际开发中的应用将在后续篇幅,这里就不在深入赘述了,对JDK 17新特性感兴趣的朋友可以留意后续文章的更新。
特性介绍
JDK 17更新了包括14个特性,具体如下表所示:
Restore Always-Strict Floating-Point Semantics
恢复始终严格模式(Always-Strict)的浮点语义
EnhancedPseudo-Random Number Generators
增强型伪随机数生成器
New macOS RenderingPipeline
新增macOS渲染管道
macOS/AArch64 Port
支持将JDK移植到macOS或AArch64
Deprecate the AppletAPI for Removal
弃用待移除的Applet API
注:JDK 9中的JEP 289先前已弃用Applet API,但并未将其删除。
Strongly EncapsulateJDK Internals
强封装JDK内部API
Pattern Matching forswitch (Preview)
switch模式匹配进入预览(Preview)阶段
Remove RMI Activation
移除RMI(远程方法调用)激活机制
Sealed Classes
密封类
注:密封类是由JEP 360提出的,并在JDK 15中作为预览功能提供。它们由JEP 397再次提出并进行了改进,并作为预览功能在JDK 16中提供。该JEP建议在JDK17中完成密封类,与JDK 16没有任何变化。
Remove theExperimental AOT and JIT Compiler
移除实验性AOT和JIT编译器
Deprecate theSecurity Manager for Removal
弃用待移除的安全管理器(Security Manager)
注:弃用安全管理器,在后续版本中移除。安全管理器可追溯到Java 1.0。多年来,它一直不是保护客户端Java代码的主要手段,也很少用于保护服务器端代码。为了推动Java向前发展,Oracle打算弃用安全管理器,以便与旧Applet API(JEP 398)一起删除。
Foreign Function& Memory API (Incubator)
外部函数和内存API(孵化器)孵化阶段
注:Java程序可以通过该API与Java运行时之外的代码和数据进行互操作。通过有效调用外部函数(即JVM之外的代码),以及安全地访问外部内存(即不由JVM管理的内存),API使Java程序能够调用本地库和处理本地数据,而没有JNI。
Vector API (SecondIncubator)
Vector API(第二孵化器)第二孵化阶段
注:引入一个API来表达向量计算,这些计算在运行时可靠地编译为支持的CPU架构上的最佳向量指令,从而实现优于等效标量计算的性能。
Context-SpecificDeserialization Filters
上下文特定的反序列化过滤器
注:允许应用程序通过JVM范围的过滤器工厂配置特定于上下文和动态选择的反序列化过滤器,该工厂被调用以为每个单独的反序列化操作选择一个过滤器。
Free Java License
根据Oracle官方发布的最新Free Java License,Oracle JDK 可以免费用于生产环境。Free Java License 大致摘要:
1)Oracle JDK免费提供包括所有季度安全更新,含商业和生产用途。
2)新许可证属于“Oracle 免费条款和条件”(NFTC)许可证。此Oracle JDK许可证允许所有用户免费使用,甚至可以用于商业和生产用途。不收取费用的前提下,允许再分发。
3)开发人员和组织目前可轻松下载、使用、共享和重新分发Oracle JDK。
4)Oracle将从JDK 17开始提供这些免费版本和更新,并在下一个LTS版本发布之后继续提供整整一年。需要注意的是以前的版本不受此更改的影响。
5)Oracle将继续按照自Java 9以来的相同版本和时间表提供GPL下的Oracle OpenJDK版本。
JDK17下载地址:https://jdk.java.net/17/
JDK17技术文档:https://docs.oracle.com/en/java/javase/17/index.html
Spring支持
Spring官方曾宣布Spring Framework 6.0和Spring Boot 3.0将基于JDK 17版本,预计2022年,下半年发布Spring Framework 6.0正式候选(RC)版本。
作为开发人员的你或者说你们公司,目前用的是JDK7还是JDK8呢?欢迎各位下方留言。
JDK 1.7 正式发布,Oracle 官宣免费提供!“新版任你发,我用JDK 8”或成历史?的更多相关文章
- 如何在Oracle官网下载历史版本JDK
打开Oracle官网,准备下载java JDK(下载时需要使用注册用户登陆,可以免费注册) 官网地址:http://www.oracle.com/ 2 鼠标悬停Downloads,会出现相关内容,如下 ...
- 如何在Oracle官网下载java的JDK最新版本和历史版本
官网上最显眼位置只显示了Java SE的JDK的最新版本下载链接,因为都是英文,如果英文不是很好,寻找之前的JDK版本需要很长时间,而且未必能在那个隐蔽的位置找到之前版本列表. 今天小编来给你详细讲解 ...
- oracle官网下载jdk跑不动太慢了,给出快速下载方式mac
oracle官网下载jdk8跑不动太慢了,给出快速下载方式 之前在oracle官网下载jdk1.8实在速度太慢,只有20K左右的下载速度,有时候甚至不动,最关键的慢也就算了,cookie有效期有限,有 ...
- 官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行!
官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行! 原创 Apache 博客 [Flink 中文社区](javascript:void(0) 翻译 | 付典 Revie ...
- Oracle 要慌了!华为终于开源了自家的 Huawei JDK——毕昇 JDK!
没错,自阿里.腾讯之后,华为也终于开源了自家的 JDK--毕昇 JDK! 免费!免费!免费!!! Oracle 要慌了? 毕昇 JDK 毕昇 JDK 是华为内部 OpenJDK 定制版 Huawei ...
- 2021年官网下载各个版本JDK最全版与官网查阅方法
版本说明 1.安装部署JDK (1)环境 (2)官网下载JDK 由于官网的地址会随着时间的修改而更改修改下载地址,现在讲述下通用的界面操作下载JDK,以后JDK收费更严重,估计就只能下载开源的了. A ...
- 超详细教程2021新版oracle官网下载Windows JAVA-jdk11并安装配置(其他版本流程相同)
异想之旅:本人博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章发布平台为CSDN.博客园.简书和开源中国,后期可能会有个人博客,除此之外 ...
- Spring官宣网传大漏洞,并提供解决方案
Spring沦陷了!这样的标题这几天是不是看腻了?然而,仔细看看都是拿着之前的几个毫不相干的CVE来大吹特吹.所以,昨天发了一篇关于最近网传的Spring大漏洞的文章,聊了聊这些让人迷惑的营销文.以及 ...
- Oracle官方文档在线查看
1.9i Oracle官方文档在线查看 http://www.oracle.com/pls/db92/homepage 2.10g Oracle官方文档线查看 http://www.oracle.co ...
随机推荐
- Vue slot 插槽用法:自定义列表组件
Vue 框架的插槽(slot)功能相对于常用的 v-for, v-if 等指令使用频率少得多,但在实现可复用的自定义组件时十分有用.例如,如果经常使用前端组件库的话,就会经常看到类似的用法: < ...
- eclipse选中参数高亮显示设置
window - preference - java - Editor - Mark Occurrences
- MongoDB-03-分片集群
分片集群(Sharding Cluster) 架构图 规划 10个实例:38017-38026 1 configserver:38018-38020 3台构成的复制集(1主两从,不支持arbiter) ...
- 通过Mysql提权的几种姿势
本文记录利用mysql数据库,在拿到shell之后进行提权的两种方法. 一.UDF提权 原理:UDF是mysql的一个拓展接口,UDF(Userdefined function)让用户通过该接口可以自 ...
- Innodb中怎么查看锁信息
一.前言 上一篇说了下innodb中锁的大概意思, 这篇说说怎么查看加的哪些锁.不然后续出现死锁或者锁等待都不知道为什么. 二.底层基础表信息 在学会如何查看有哪些锁信息时, 需要了解一些基础表信息, ...
- Linux部署PgSQL数据库
1.安装: yum install postgresql-server -y postgresql-setup initdb cd /var/lib/pgsql/data 2.进入 /var/lib/ ...
- Angular Module 共享模块使用 父模块使用多个子模块
Component.module.ts import {BrowserModule} from '@angular/platform-browser'; import {LocationStrat ...
- AECC2018同时中英文切换多开使用,加倍提高你的工作效率
最近相信不少人已经更新了AECC2018,升级之后第一件重要的事当然是中英文的切换了,要不然工作中很麻烦.对于一直习惯用中文的人来说,在用模板过程中会出现各种表达式报错极其不方便,而对于习惯英文操作朋 ...
- 一 · 路由事件的三种方式/策略(冒泡 直接 隧道)
WPF中的路由事件是沿着VisualTree传递的,作用是用来调用应用程序的元素树上的各种监听器上的处理程序. (1)冒泡,这种事件处理方式是从源元素向上级流过去,直到到达根节点即顶层节点,一般为最外 ...
- SpringBoot中的application.properties外部注入覆盖
由想要忽略properties中的某些属性,引发的对SpringBoot中的application.properties外部注入覆盖,以及properties文件使用的思考. SpringBoot 配 ...