JAVA10新特性_JDK 10新特性

教程分享 > Java教程 (1457) 2024-04-17 12:33:23

一、引言

    在Java 9发布之后,Java 10很快就出现了。与之前的版本不同,Java 10没有那么多令人兴奋的功能,但它几乎没有重要的更新会改变您的编码方式,以及其他未来的Java版本。简单的说Java 10 仅仅是Java 9的一些优化和增强。新功能不多,变化也不多。

二、局部变量类型自动识别推断

  Java语言现在支持var方式声明变量。var允许声明局部变量的时候不指定类型。变量的类型将从创建的实际对象的类型推断出来。这个改变声称JDK10唯一对开发人员的改变。

$title(Application.java)
var str = "Hello world";
  
//或者
  
String str = "Hello world";

上面例子中的两个语句写法是等价的。在第一个语句中,类型str由类型的赋值String类型决定。

三、垃圾收集器接口

在早期的JDK结构中,构成垃圾收集器(GC)实现的组件分散在代码库的各个部分中。它在Java 10中发生了变化。现在,它是JVM源代码中的一个干净的接口,可以快速,轻松地集成替代收集器。它将改善不同垃圾收集器的源代码隔离。
这纯粹是重构。以前工作的所有东西都需要在之后工作,而且表现不应该倒退。

四、root 证书

cacerts密钥库是JDK的一部分,旨在包含一组根证书,这些证书可用于在各种安全协议中使用的证书链中建立信任。但是,JDK源代码中的cacerts密钥库目前是空的。
cacerts密钥库将填充由Oracle Java SE根CA程序的CA颁发的一组根证书。许多供应商已经签署了所需的协议,并且每个供应商都会签署一份将包含的根证书列表。那些未签署协议的人目前不会被包括在内。那些需要更长时间处理的内容将包含在下一个版本中。
这也意味着Oracle和Open JDK二进制文件在功能上都是相同的。默认情况下,TLS等关键安全组件将在OpenJDK构建中运行。

五、基于实验Java的JIT编译器

此功能使基于Java的JIT编译器Graal可用作Linux / x64平台上的实验性JIT编译器。Graal将使用JDK 9中引入的JVM编译器接口(JVMCI).Graal已经在JDK中,因此将其作为实验性JIT启用将主要是测试和调试工作。
要将Graal作为JIT编译器启用,请在java命令行上使用以下选项:
-XX:+ UnlockExperimentalVMOptions -XX:+ UseJVMCICompiler
Graal是从头开始用Java完全重写JIT编译器。以前的JIT编译器是用C ++编写的。

六、新增的API和选项

在Java 10中添加了73个新的API。让我们来看看它们中的一些:
API 描述
Optional.orElseThrow() 该类中orElseThrow添加了一种新方法Optional。它是现有get方法的同义词,现在是现有方法的首选替代方案。
List.copyOfSet.copyOfMap.copyOf 这些方法从现有实例创建新的集合实例。
Collectors.toUnmodifiableListCollectors.toUnmodifiableSetCollectors.toUnmodifiableMap 这些方法允许将a的元素Stream收集到不可修改的集合中
--jdk.disableLastUsageTracking 禁用正在运行的VM的JRE上次使用情况跟踪。
--add-stylesheet 支持在生成的文档中使用多个样式表。
--main-stylesheet 帮助区分主样式表和任何其他样式表。
@summary 标签 添加以明确指定用作API描述摘要的文本。默认情况下,API描述的摘要是从第一句推断出来的。

七、删除了API和选项

API 描述
LookAndFeels  
Runtime.getLocalizedInputStreamRuntime.getLocalizedOutputStream 过时的国际化机制的一部分,没有已知的用途。
RMI服务器端多路复用协议支持 它在JDK 9中被禁用,现在已被删除。
常见的DOM API 这些com.sun.java.browser.plugin2.DOMsun.plugin.dom.DOMObjectAPI已被删除。应用程序可以netscape.javascript.JSObject用来操纵DOM。
FlatProfiler 在JDK 9中已弃用,已通过删除实现代码而过时。
-Xoss-Xsqnopause-Xoptimize-Xboundthreads,和-Xusealtsigs 选项已删除。
policytool 用policytool安全工具已经从JDK中删除。
不推荐使用的类 com.sun.security.auth.** 现在删除以下课程。
  • com.sun.security.auth.PolicyFile
  • com.sun.security.auth.SolarisNumericGroupPrincipal
  • com.sun.security.auth.SolarisNumericUserPrincipal
  • com.sun.security.auth.SolarisPrincipal
  • com.sun.security.auth.X500Principal
  • com.sun.security.auth.module.SolarisLoginModule
  • com.sun.security.auth.module.SolarisSystem

 
https://www.leftso.com/article/518.html

相关文章
JAVA10 升级后的几个我们值得关注的新特性。尤其是第一个,赶紧看看JDK10的新特性吧。
windows10如何安装JDK_windows10怎么配置jdk环境变量,windows XP/7/8/10系统配置java运行开发环境即配置jdk环境变量
Java 10上的Apache CXF
yum安装jdk1.8-CentOS6.5,centos6,jdk8
Java编程中使用spring boot1.5.2框架整合spring data mongodb10.1,来使用mongodb数据库
了解JDK、JRE 和 JVM 之间的差异
JDK11 Java String 新增方法,Java的String类可能会获得一些JDK 11的新方法,预计将于2018年9月发布。
JDK11 90+ 新特性新功能(第二部分:非开发人员功能)
JDK11 90+ 新特性新功能(第一部分)开发人员可见功能
在Linux系统中安装和配置Java的运行或者编译jdk环境。安装分两种类型,系统安装包例如centos系列的有rpm包或者通过yum安装;第二总就是Linux通用的方法,下载对应系统的jdk压...
使用thymeleaf 模板创建时间 使用thymeleaf 创建指定日期为:2023-10-18 #dates.create(2023,10,18) 使用thymeleaf ...
当开发人员谈论Java应用程序及其开发环境时,JDK,JRE和JVM是非常常见的词汇。让我们来看看这些词之间的差异。
在第11次发布之后,人们对JavaFX与JDK脱钩产生了各种各样的感受。我们中的许多人认为现在是时候告别JavaFX并转而采用另一种GUI技术,而其他一些人则对这种情况感到高兴。
JDK8 从某年某月开始变成个人免费,商用收费了,以至于网上经常搜索到最后一个免费版是jdk那个版本。下面通过Oracle 官方文档来看最后的免费午餐版本是 J
Ubuntu 20.04 安装jdk8sudo apt-get install openjdk-8-jdk安装完成后查看版本java -version