甲骨文Java 14来啦!

甲骨文两年来,每六个月如约发布新版本的Java,Oracle JDK 14为开发人员带来创新功能和新特性预览。Oracle JDK 14增加了一些新特性来提高开发人员工作效率,这些新特性包括:对switch表达式的Java语言支持,用于持续监控JDK Flight Recorder数据的新API,以及将低延迟Z垃圾收集器扩展到macOS和Windows中,此外新版本包括三个预览特性:instanceof模式匹配JEP 305、记录类 JEP 359和文本块JEP 368

如今甲骨文正式发布Java 14Oracle JDK 14

秉承甲骨文对加速创新的一贯承诺,Java保持每六个月发布一次新版本,为企业和开发人员社区提供新的增强功能。新版Java开发工具包(JDK)提供了许多新特性,其中包括两个备受期待的新预览特性:instanceof模式匹配(JEP 305)和记录类(JEP 359)以及第二次作为预览特性的文本块(JEP 368)。

此外,最新版Java还增加了对switch表达式的Java语言支持,公开了用于持续监视DK Flight Recorder数据的全新API,将低延迟Z垃圾收集器的可用性扩展至macOS和Windows,并在孵化器模块中封装了独立Java应用和新的外部内存访问API,以此支持安全、高效地访问Java堆外部的内存。

Java 维持了每六个月发布新版本的节奏,让开发人员能尽快尝试到许多原本需要等待数年的功能,这个优势在Java 14中得到了进一步体现。甲骨文公司Java平台开发副总裁Georges Saab表示,JDK 14不仅带来很多帮助开发者提高工作效率的增强功能,而且首次提供来自Project Panama等项目的重要内容,包括外部存储器访问API增强JEP 370以及Project Amber的持续改进,例如模式匹配JEP 305和记录类JEP 359

Java 14发行版是整个行业通力合作的成果,这其中包括开放评审、每周构建和一直以来甲骨文工程师通过OpenJDK社区和Java Community Process与全球Java开发人员社区成员间的广泛合作。

Java 14的新增特性主要包括以下:

JEP 305:instanceof模式匹配Pattern Matching for instanceof预览版) — 该预览特性可通过instanceof运算符模式匹配来增强Java。使用该特性,开发人员可以移除掉常见的样板代码,写出更加简洁的类型安全代码,从而提高工作效率。

JEP343:打包工具Packaging Tool孵化阶段)— 支持开发人员打包Java应用并以平台特定格式进行分发。这有助于开发人员开发那些要求运行时和应用捆绑在单一交付成果中的现代应用。Java 14在孵化器模块中引入了此工具,将非最终版API和非最终版工具提供给开发人员以获取反馈,这些API或工具在未来版本中可能会被保留或移除。

JEP 345:适用于G1的NUMA感知内存分配 (NUMA-Aware Memory Allocation for G1— 改进非一致性内存访问NUMA系统上的G1垃圾收集器的整体性能。

JEP 349:JFR事件流JFR Event Streaming — 公开JDK Flight Recorder JFR数据以便持续监控。这有助于简化各种工具和应用对JFR数据的访问,并激励进一步创新。

JEP 352:非易失性映射字节缓冲区Non-Volatile Mapped Byte Buffers — 在使用非易失性内存时,为JDK添加一种文件映射模式,扩展对非易失性内存的访问。

JEP 358:有用的NullPointerExceptionsHelpful NullPointerExceptions — 准确描述哪个变量为null并提供其他有用信息,从而提高NullPointerExceptions的可用性。这将提高开发人员的工作效率,改进许多开发和调试工具的质量。

JEP 359:记录类Records预览版)— 该预览特性通过一种紧凑的语法来声明保存浅层不可变数据的类。此特性有助于大幅减少该类中的样板代码,不过其最大的优势在于可以将数据建模为数据。用户可以轻松、清楚、简洁地声明这些浅层不可变数据聚合。

JEP 361:Switch表达式Switch Expressions标准版)— 在JDK 12和JDK 13中,Switch表达式为预览特性,现已成为标准特性。它允许使用switch作为语句或表达式。此特性简化了日常编码,并为此版本中的模式匹配(JEP 305)预览特性做好了准备。

JEP 364:macOS上的ZGC以及JEP 365:Windows上的ZGC — 尽管大多数需要ZGC的用户也需要Linux环境的可扩展性,但通常需要通过部署和测试以便在macOS和Windows上支持ZGC。还有一些针对Windows和macOS的桌面应用也将受益于ZGC。

JEP 368:文本块Text Blocks第二次预览版)— 文本块作为预览特性首次引入Java 13后收到了众多最终用户的反馈。现在,文本块得到了增强,再次作为预览特性出现在Java 14中,目标成为未来JDK版本的标准特性。使用文本块可以轻松表达跨多行源代码的字符串。它提高了Java程序中以非Java语言编写的代码的字符串的可读性;它约定,任何新构造的文本块都可以用字符串相同的字符集表示,解释相同的转义序列并以与字符串相同的方式进行操作。

JEP370:外部内存访问API(Foreign-Memory Access API,孵化阶段)— 此API可允许Java程序安全、高效地访问Java堆之外的外部内存。

对于寻求商业支持的用户和企业,甲骨文还提供一种低成本、可预测的支持解决方案 — Oracle Java SE订阅服务。目前该服务已得到全球成千上万家不同规模类型组织的广泛使用。通过该服务,用户可以获得Java SE许可证以及所需系统的全面支持而且随需随用,并可以做到定期直接从甲骨文获得所支持版本经过测试与认证的性能、稳定性及安全性更新。

Java作为一直以来都是深受软件开发者青睐的首选编程语言之一,伴随着Java 14创新功能的按时交付,对未来的周详规划以及对生态系统的持续投入,Java平台将继续为现代应用开发注入动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019阿里巴巴技术面试题集锦(含答案)

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次整体放出。并通过这些笔试真题开放阿里巴巴工作机会,让更多的开发者加入到阿里这个大平台。 …

揭秘!闲鱼拉新投放系统如何设计

背景 闲鱼目前已经是国内最大的闲置物品交易平台。随着闲鱼体量的增长和用户规模不断扩大,闲鱼App上的一个普通banner抑或是feeds中的一张普通的卡片,每天都可能被数以千万计的人看到。 为了更好地服务好广大的用户群体,更加个性化的内容推…

Springboot/Cloud集成Sentinel 和 入门实战

文章目录一、Springboot/Cloud集成Sentinel1. spring-cloud-alibaba依赖2. 引入 Sentinel starter3. 配置application.yml3. 接入限流埋点4. 访问接口5. sentinel控制台二、入门实战2.1. 流控管理2.2. 快速访问请求一、Springboot/Cloud集成Sentinel 1. spring-cloud-alibaba依…

Java-变量、常量

变量 public class Demo06 {// 类变量 staticstatic double salary 888;// 实例变量: 从属于对象; 如果不自行初始化,这个类型的默认值是 0 0.0// 布尔值 : 默认是false// 除了基本类型,其余都是nullString name;int age;public …

为什么kill进程后socket一直处于FIN_WAIT_1状态

本文介绍一个因为conntrack内核参数设置和iptables规则设置的原因导致TCP连接不能正常关闭(socket一直处于FIN_WAIT_1状态)的案例,并介绍conntrack相关代码在conntrack表项超时后对新报文的处理逻辑。 案例现象 问题的现象: ECS上有一个进程&#xff0…

Docker 开发环境的滑坡

作者 | Micah Adams责编 | 徐威龙封图| CSDN 下载于视觉中国最近,我构建了一个本地开发环境,该环境使用 Docker 进行一些关键的集成测试。 在我要完成这项工作时,我意识到在开始这项工作之前,我没有考虑到这么做的一些意义深远影响…

Springboot全局异常统一处理返回json

文章目录1. 创建一个枚举、封装异常的错误码等信息2. 创建一个自定义异常类继承RuntimeException。3. 自定义异常4. 抛出异常5. 测试1. 创建一个枚举、封装异常的错误码等信息 package com.gblfy.distributedlimiter.enums;public enum ServiceErrCode {REQ_PARAM_ERR(10001, …

关于JavaBean

JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。 接下来给出的是 JavaBean 与其它 Java 类相比而言独一无二的特征: 提供一个默认的无参构造函数。需要被序列化并且实现了 Serializable 接口。可能有一系列可读…

TableStore: 海量结构化数据分层存储方案

前言 表格存储是阿里云自研分布式存储系统,可以用来存储海量结构化、半结构化的数据。表格存储支持高性能和容量型两种实例类型。高性能使用SSD的存储介质,针对读多写多的场景都有较好的访问延时。容量型使用的是SSD和SATA混合的存储介质。对写多的场景…

Java-基本运算符

运算符 public class Demo01 {public static void main(String[] args) {// 二元运算符// Ctrl D : 复制当前行到下一行int a 10;int b 20;int c 25;int d 25;System.out.println(ab);System.out.println(a-b);System.out.println(a*b);System.out.println(a/(double)b); …

蚂蚁金服终端实验室演进之路

0. 背景 作为国民级 App,支付宝客户端需要为亿级用户提供多元化的服务,因此应用的稳定性与可靠性面临巨大的挑战,需要不断地完善和优化。 今天,让我们站在服务质量的全方位监控与优化的角度,从蚂蚁终端实验室的演进之…

2020年边缘计算最新前沿报告:如何与核心云、5G、AI协同?如何打造新业态和部署运营?...

作者 | 唐汝林、陈琪责编 | 屠敏头图 | CSDN 下载自东方 IC数据来源 | 华信咨询设计研究院有限公司在数字经济的时代浪潮中,作为关键生产要素的数字技术的快速变革已成为新常态。正当人工智能开始崭露头角时,云计算的边缘化延伸趋势又成为了另一个新焦点…

Springboot/Cloud集成Sentinel进阶实战

文章目录一、自定义限流处理1. 自定义处理类2. 请求一次测试3. 重新配置流控规则4. 重新测试5. controller二、方法限流处理2.1. 创建接口2.2. 创建接口实现类2.3. 接口调用2.4. 请求2.5. 设置流控规则一、自定义限流处理 自定义限流文档 1. 自定义处理类 package com.gblfy…

若依SQL Server开发使用教程

1. sys_menu表中的将菜单ID修改为自动ID,解决不能增加菜单的问题,操作流程如下: 解决方案如下 菜单栏->工具->选项 点击设计器,去掉阻止保存要求更新创建表的更改选项,点确认既可以保存了 2 自动生成代码找不表的解决方案…

java基础 代理

1.代理是什么? 代理(Proxy)是一种设计模式。提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。 有一个类我们无法更改,但我们希望在原有类上加上我们自己的逻辑(增强),这时就可以…

使用EMR Spark Relational Cache跨集群同步数据

背景 Relational Cache是EMR Spark支持的一个重要特性,主要通过对数据进行预组织和预计算加速数据分析,提供了类似传统数据仓库物化视图的功能。除了用于提升数据处理速度,Relational Cache还可以应用于其他很多场景,本文主要介绍…

Java-自增自减运算符 初始Math类

public class Demo04 {public static void main(String[] args) {// -- 自增 自减 一元运算符int a 3;int b a; // 先赋值, 在运行 a a 1System.out.println(a); // 4System.out.println(b); // 3int c a; // 先运算a a 1,在赋值System.out.p…

异构计算黄金时代下,超强异构计算服务器FP5468G2将会带来哪些变革?

就在几年前,计算领域还是通用计算的天下。此一时,彼一时,随着计算密集型领域的快速崛起,面对移动互联网、大数据和云计算需求的爆炸式增长,传统的单一CPU方案越来越力不从心。另一方面,半导体技术在纵向提速…

基于External-DNS的多集群Ingress DNS实践

概要 External-DNS提供了编程方式管理Kubernetes Ingress资源的DNS的功能,方便用户从Ingress管理DNS解析记录。而在kubernetes federation v2环境中,使用External-DNS可以快速的管理多个联邦集群的Ingress DNS解析,降低用户的操作成本。下面…

在执行Dockerfile时出现Get https://registry-1.docker.io/v2/错误的解决方案

文章目录1. 登录阿里云2. 找到镜像加速3. 使用阿里云镜像1. 登录阿里云 没有就注册,不要文为什么要用阿里云镜像,没办法,就是快! https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 2. 找到镜像加速 复制内容: {&qu…