网站首页 > 技术文章 正文
JDK 9 中核心库的新功能
JEP 102:进程API更新
改进用于控制和管理操作系统进程的API。
所述ProcessHandle类提供的过程的本机过程ID,自变量,命令,开始时间,累积CPU时间,用户,父进程,和后代。该类还可以监视进程的活动并销毁进程。使用ProcessHandle.onExit方法,CompletableFuture类的异步机制可以在进程退出时执行一个操作。
请参阅的Java平台,标准版Java的核心库开发指南中进程API,java.lang.Process和java.lang.ProcessHandle。
JEP 193:变量操作
定义一个标准的方法来调用对象字段和数组元素上的java.util.concurrent.atomic和sun.misc.Unsafe操作的等价物。
定义一组标准的外围操作,由VarHandle静态方法组成,可以对内存排序进行细粒度的控制。这是sun.misc.Unsafe的替代方法,它提供了一组非标准的外围操作。
定义标准可达性外围操作,以确保引用的对象保持强力的可访问性。
JEP 254:紧凑型字符串
对字符串采用更节省空间的内部表示。以前,String类在char数组中存储字符,每个字符使用两个字节(16位)。String类的新内部表示是一个字节数组加上一个编码标志字段。
这完全是一种实现变更,而不改变现有的公共接口。
请参阅Java Platform,Standard Edition Tools ReferenceCompactStrings中的java命令选项。
JEP 264:平台日志API和服务
定义平台类可用于记录消息的最小记录API,以及消息者的服务接口。库或应用程序可以提供此服务的实现,将平台日志消息路由到其选择的日志记录框架。如果没有提供实现,则使用基于java.util.logging API 的默认实现。
JEP 266:更多并发更新
添加在JDK 8中引入的未来并发更新到JEP 155:并发更新,包括可互操作的发布 - 订阅框架和对CompletableFuture API的增强。
JEP 268:XML目录
添加标准XML目录API,该API支持结构化信息标准(OASIS)XML目录1.1版标准的组织。API定义了目录和目录解析器抽象,可以用作内部或外部解析器,JAXP处理器可以接受解析器。
使用内部目录API的现有库或应用程序将需要迁移到新的API以利用新功能。
见XML目录API的Java平台,标准版Java的核心库开发人员指南。
JEP 269:集合的便利工厂方法
使用少量元素创建集合和映射的实例更容易。对于List,Set和Map接口,新的静态工厂方法使得创建这些集合的不可变实例变得更为简单。
例如:
Set<String> alphabet = Set.of(“a”,“b”,“c”);
请参阅在Java平台“标准版Java核心库开发人员指南”中创建不可变的列表,集合和映射。有关API文档,请参阅不可变静态工厂方法,不可变Map静态工厂方法和不可变列表静态工厂方法。
JEP 274:增强方法句柄
增强java.lang.invoke包的MethodHandle,MethodHandles和MethodHandles.Lookup类,以简化常见的用例并实现更好的编译器优化。
补充包括:
? 在java.lang.invoke包中的MethodHandles类中,为循环和try / finally块提供新的MethodHandle组合器。
? 使用新的MethodHandle组合器来增强MethodHandle和MethodHandles类的参数处理。
? 在MethodHandles.Lookup类中实现接口方法和可选的超类构造函数的新的查找方式。
JEP 277:增强Deprecated
修改@Deprecated注释,以提供有关规范中API的状态和预期配置的更好信息。增加了两个新元素:
? @Deprecated(forRemoval = true)表示将在Java SE平台的将来版本中删除该API。
? @Deprecated(since =“version”)包含Java SE版本字符串,用于指示何时不推荐使用API元素,这些字符串在Java SE 9及更高版本中已被弃用。
例如:@Deprecated(since =“9”,forRemoval = true)
@Deprecated注解在核心平台中已更新。
您可以使用新工具jdeprscan来扫描类库(JAR文件),以使用已弃用的JDK API元素。
请参阅在Java平台,标准版Java的核心库开发人员指南中增强弃用。
请参阅在Java平台,标准版工具参考中jdperscan。
JEP 285:自旋等待提示
定义一个API,使Java代码能够提示自旋循环正在执行。自旋循环重复检查条件是否为真,例如可以获取锁定,之后可以安全地执行一些计算,然后释放锁定。这个API纯粹是一个提示,并且没有语义行为的要求。请看Thread.onSpinWait的方法。
JEP 290:过滤进入的序列化数据
允许对对象序列化数据的传入流进行过滤,以提高安全性和鲁棒性。对象序列化客户端可以更容易地验证其输入,并且导出的远程方法调用(RMI)对象也可以更容易地验证调用参数。
序列化客户端实现在ObjectInputStream上设置的过滤器接口。对于RMI,通过RemoteServerRef导出对象,该RemoteServerRef将MarshalInputStream上的过滤器设置为在未调用时验证调用参数。
JEP 259:Stack-Walking API
提供了一个Stack-Walking API,允许轻松过滤和延迟地访问堆栈跟踪中的信息。
该API支持两个短步,停止在与给定条件匹配的框架上,以及遍历整个堆栈的漫步。在符合给定标准的帧上停止,如果调用者只对堆栈中的顶部帧感兴趣,则避免检查所有帧的成本。当堆栈步行器配置为这样时,API可以访问Class对象。请参阅java.lang.Stackwalker类。
JEP 255:合并所选Xerces 2.11.0更新到JAXP
更新JDK以支持2.11.0版本的Xerces解析器。公共JAXP API没有变化。
更改在Xerces 2.11.0的以下类别中:数据类型,DOM L3序列化程序,XPointer,目录解析器和XML模式验证(包括错误修复,但不是XML模式1.1开发代码)。
Nashorn在JDK 9中的新功能
这些是JDK 9中的Nashorn增强功能。
JEP 236:Nashorn的解析器API
使应用程序,特别是IDE和服务器端框架能够解析和分析ECMAScript代码。
使用Parser类中的方法从字符串,URL或文件解析ECMAScript代码。这些方法返回一个CompilationUnitTree的实例,它表示ECMAScript代码作为抽象语法树。
包jdk.nashorn.api.tree包含Nashorn解析器API。
JEP 292:在Nashorn中实现所选的ECMAScript 6功能
实现了第六版ECMA-262(也称为ECMAScript 6)或简称ES6 引入的许多新功能。
实施的功能包括:
? 模板字符串
l? et,const和块范围
? 迭代器和for..of循环
? Map,Set,WeakMap和WeakSet
? 符号
? 二进制和八进制文本
JDK 9 中客户端技术的新功能
这些是JDK 9中的客户端技术增强功能。
JEP 251:多分辨率图像
使一组具有不同分辨率的图像被封装到单个多分辨率图像中。这对应用程序来说适用于在运行时分辨率可能会从大约96dpi到300dpi变化的显示设备。
接口java.awt.image.MultiResolutionImage将一组具有不同分辨率的图像封装到单个多分辨率图像中,使应用程序能够轻松地操作和显示具有分辨率变体的图像。
JEP 253:准备用于模块化的JavaFX UI控件和CSS API
为JavaFX UI控件和CSS功能提供公共API,以前只能通过内部软件包提供,但由于模块化而无法访问。
新包javafx.scene.control.skin由一组类提供每个UI控件的皮肤(或外观)的默认实现。
新类CssParser是一个返回一个Stylesheet对象的CSS解析器,它可以更好地控制应用程序的CSS样式。它是CSS API(javafx.css包)的一部分。CSS API包括新的支持类,包括解析器使用的一组标准转换器; 参阅javafx.css.converter包
JEP 256:BeanInfo注释
@beaninfo使用注释类型JavaBean,BeanProperty和SwingContainer替换Javadoc标记。
这些注释类型在运行时在BeanInfo生成期间设置相应的特征属性。因此,您可以更容易地直接在Bean类中指定这些属性,而不是为每个Bean类创建一个单独的BeanInfo类。它还可以删除自动生成的类,这使得更容易模块化客户端库。
JEP 262:TIFF图像I / O
将标签图像文件格式(TIFF)作为标准读取和写入添加到javax.imageio包中。新包javax.imageio.plugins.tiff提供了简化TIFF元数据可选操作的类。
JEP 263:Windows和Linux上的HiDPI Graphics
在Windows和Linux上自动缩放和调整AWT和Swing组件,以实现高位数/英寸(HiDPI)显示。
JDK已经在OS X上支持HiDPI“视网膜显示”。
在此版本之前,在Windows和Linux上,Java应用程序基于像素进行了大小和渲染,即使在可以具有传统显示器的二至三倍像素密度的HiDPI显示器上也是如此。这导致GUI组件和窗口太小,无法读取或使用。
JEP 272:平台特定的桌面功能
向类java.awt.Desktop添加其他方法,使您能够与桌面交互,包括以下内容:
? 显示自定义关于和首选项窗口。
? 处理打开或打印文件列表的请求。
? 处理打开URL的请求。
? 打开本机帮助查看器应用程序。
? 设置默认菜单栏。
? 启用或禁用应用程序突然终止。
这些新方法替代了包含在OS X软件包com.apple.eawt中的内部API的功能,它们在JDK 9中默认不可访问。请注意,软件包com.apple.eio不再可访问。
JEP 283:在Linux上启用GTK 3
启用Java图形应用程序,无论是基于JavaFX,Swing还是抽象窗口工具包(AWT),都可以在Linux或Solaris上使用GTK +版本2或版本3。
默认情况下,Linux或Solaris上的JDK使用GTK + 2(如果可用)如果没有,它使用GTK + 3。
要使用特定版本的GTK +,请设置系统属性jdk.gtk.version。此系统属性的值可能为2,2.2或3.您必须在应用程序加载GTK +之前设置此属性,并且不得与较早由另一个工具包加载的GTK +版本冲突。
JDK 9 中的国际化新进展
这些是JDK 9中的国际化增强。
JEP 267:Unicode 8.0
支持Unicode 8.0。JDK 8支持的Unicode 6.2。
Unicode的6.3,7.0和8.0标准相结合引入10555个字符,29个脚本,和42个块,所有这些在JDK 9都被支持。
JEP 252:默认情况下启用CLDR区域设置数据
使用首先在JDK 8中添加的,公共区域设置数据存储库(CLDR),基于XML的区域设置数据,作为JDK 9中的默认语言环境数据。在以前的版本中,默认值为JRE。
要启用与JDK 8兼容的行为,请将系统属性java.locale.providers的值在CLDR之前设置为COMPAT
请参阅在Java平台,标准版国际指南中CLDR语言环境数据通过默认启用。
JEP 226:UTF-8属性文件
以UTF-8编码加载属性文件。在以前的版本中,加载属性资源束时使用了ISO-8859-1编码。UTF-8是一种非常方便的表示非拉丁字符的方法。
大多数现有的属性文件不应受到影响。
请参阅在Java平台,标准版国际指南中UTF-8属性文件。
文档辅助功能
? 有关Oracle对可访问性的承诺的信息,请访问Oracle辅助功能计划网站:http://www.oracle.com/pls/topic/lookup?ctx=acc& id=docacc。
? 访问Oracle支持
猜你喜欢
- 2024-10-25 10月9日,恭喜CUUG 蔡同学获得Oracle OCP 19c证书
- 2024-10-25 Oracle 19c OCP学习计划 oracle 2019 ocp
- 2024-10-25 Oracle最新财报显示AI需求强劲,业绩会后大涨12%,带动英伟达大涨7%,人工智能ETF(159819)早盘涨1.6%(截止9:50)
- 2024-10-25 ORACLE11G RACFOR LINUX oracle11g客户端client下载
- 2024-10-25 关于Oracle存在多个高危漏洞的预警通报
- 2024-10-25 Oracle学习日记——使用数字 oracle数据库number
- 2024-10-25 Oracle OCP认证063中文考试题库-第9题
- 2024-10-25 Oracle跟Mysql的区别 oracle与mysql的sql语句区别
- 2024-10-25 Ask Oracle:4月3日至4月9日摩羯座、水瓶座、双鱼座运势
- 2024-10-25 Ask Oracle:4月3日至4月9日白羊座、金牛座、双子座运势
你 发表评论:
欢迎- 621℃几个Oracle空值处理函数 oracle处理null值的函数
- 614℃Oracle分析函数之Lag和Lead()使用
- 602℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 598℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 594℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 586℃【数据统计分析】详解Oracle分组函数之CUBE
- 575℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 563℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)