Java12新特性 -- 其他新增,移除,废弃项

支持unicode 11

JDK 12版本包括对Unicode 11.0.0的支持。在发布支持Unicode 10.0.0的JDK 11之后,Unicode 11.0.0引
入了以下JDK 12中包含的新功能:
684 new characters
11 new blocks
7 new scripts.
其中:
684个新字符,包含以下重要内容:
66个表情符号字符(66 emoji characters)
Copyleft符号(Copyleft symbol)
评级系统的半星(Half stars for rating systems)
额外的占星符号(Additional astrological symbols)
象棋中国象棋符号(Xiangqi Chinese chess symbols)
7个新脚本:
Hanifi Rohingya
Old Sogdian
Sogdian
Dogra
Gunjala Gondi
Makasar
Medefaidrin
11个新块,包括上面列出的新脚本的7个块和以下现有脚本的4个块:
格鲁吉亚扩展(Georgian Extended)
玛雅数字(Mayan Numerals)
印度Siyaq数字(Indic Siyaq Numbers)
国际象棋符号(Chess Symbols)

支持压缩数字格式化

NumberFormat 添加了对以紧凑形式格式化数字的支持。

@Test
public void testCompactNumberFormat(){
    var cnf = NumberFormat.getCompactNumberInstance(Locale.CHINA,
    NumberFormat.Style.SHORT);
    System.out.println(cnf.format(1_0000));
    System.out.println(cnf.format(1_9200));
    System.out.println(cnf.format(1_000_000));
    System.out.println(cnf.format(1L << 30));
    System.out.println(cnf.format(1L << 40));
    System.out.println(cnf.format(1L << 50));
}

输出

1万
2万
100万
11亿
1兆
1126兆
增加项:String新增方法
  1. String的transform(Function)
var result = "foo"
.transform(input -> input + " bar")
.transform(String::toUpperCase)
System.out.println(result); // FOO BAR
  1. String的indent方法,调整String实例的缩进。
private static void testIndent() {
    System.out.println("======test java 12 indent======");
    String result = "Java\n Python\nC++".indent(3);
    System.out.println(result);
}
Files新增mismatch方法,文件内容比对
public void testFilesMismatch() throws IOException {
    FileWriter fileWriter = new FileWriter("tmp\\a.txt");
    fileWriter.write("a");
    fileWriter.write("b");
    fileWriter.write("c");
    fileWriter.close();
    FileWriter fileWriterB = new FileWriter("tmp\\b.txt");
    fileWriterB.write("a");
    fileWriterB.write("1");
    fileWriterB.write("c");
    fileWriterB.close();
    System.out.println(Files.mismatch(Path.of("tmp/a.txt"),Path.of("tmp/b.txt")));
}
其他新增项
  • Collectors新增teeing方法用于聚合两个downstream的结果
  • CompletionStage新增exceptionallyAsync、exceptionallyComposeAsync方法,允许方法体在异步线程执
    行,同时新增了exceptionallyCompose方法支持在exceptionally的时候构建新的CompletionStage。
  • ZGC: Concurrent Class Unloading
    • ZGC在JDK11的时候还不支持class unloading,JDK12对ZGC支持了Concurrent Class Unloading,默认是
      开启,使用-XX:-ClassUnloading可以禁用
  • 新增-XX:+ExtensiveErrorReports
    • -XX:+ExtensiveErrorReports可以用于在jvm crash的时候收集更多的报告信息到hs_err.log文件中,
      product builds中默认是关闭的,要开启的话,需要自己添加-XX:+ExtensiveErrorReports参数
  • 新增安全相关的改进
    • 支持java.security.manager系统属性,当设置为disallow的时候,则不使用SecurityManager以提升性
      能,如果此时调用System.setSecurityManager则会抛出UnsupportedOperationExceptionkeytool新增-
      groupname选项允许在生成key pair的时候指定一个named group新增PKCS12 KeyStore配置属性用于自
      定义PKCS12 keystores的生成Java Flight Recorder新增了security-related的event支持ChaCha20 and
      Poly1305 TLS Cipher Suites
移除项
  • 移除com.sun.awt.SecurityWarnin;
  • 移除FileInputStream、FileOutputStream、- Java.util.ZipFile/Inflator/Deflator的finalize方法;
  • 移除GTE CyberTrust Global Root;
  • 移除javac的-source, -target对6及1.6的支持,同时移除--release选项;
废弃项
  • 废弃的API列表见deprecated-list
  • 废弃-XX:+/-MonitorInUseLists选项
  • 废弃Default Keytool的-keyalg值

原文地址:https://www.cnblogs.com/androidsuperman/p/11766483.html

时间: 2024-07-30 07:17:52

Java12新特性 -- 其他新增,移除,废弃项的相关文章

详解Tomcat 7的七大新特性和新增功能

Apache发布首个Tomcat 7版本已经发布了有一段时间了,Tomcat 7引入了许多新功能,并对现有功能进行了增强.很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们,或指出它们的不足,或提供代码示例.本文将明确描述Tomcat 7中七个最显著的特征和新增的功能,并对其作出评论,而不是仅仅列出新的功能.本文还提供了代码例子以方便你可以对其有更好的理解. 本文分为两个部分,分别是"Tomcat 7的新特性"和"Tomcat 7增强的功能". To

Java12新特性 -- 默认生成类数据共享(CDS)归档文件

默认生成类数据共享(CDS)归档文件 同一个物理机/虚拟机上启动多个JVM时,如果每个虚拟机都单独装载自己需要的所有类,启动成本和内 存占用是比较高的.所以Java团队引入了类数据共享机制 (Class Data Sharing ,简称 CDS) 的概念,通过把一些核心类在每个JVM间共享,每个JVM只需要装载自己的应用类即可.好处是:启动时间减少了,另外核心类是共享的,所以JVM的内存占用也减少了. 历史版本 JDK5引入了Class-Data Sharing可以用于多个JVM共享class,

详解Tomcat 7的七大新特性和新增功能(1)

http://developer.51cto.com/art/201009/228537.htm http://tomcat.apache.org/tomcat-7.0-doc/index.html Apache发布首个Tomcat 7版本已经发布了有一段时间了,Tomcat 7引入了许多新功能,并对现有功能进行了增强.很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们,或指出它们的不足,或提供代码示例.本文将明确描述Tomcat 7中七个最显著的特征和新增的功能,并对其作出评论

Java12新特性 -- switch表达式

传统switch表达式的弊端: 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行: 所有的case语句共用一个块范围,在不同的case语句定义的变量名不能重复: 不能在一个case里写多个执行结果一致的条件: 整个switch不能作为表达式返回值: java 12 switch新特性: 使用 Java 12 中 Switch 表达式的写法,省去了 break 语句,避免了因少写 break 而出错. 同时将多个 case 合并到一行,显得简洁.清晰也更加优雅的表达

Java12新特性 -- 可中断的G1 Mixed GC

Java 12 中增强了 G1 垃圾收集器关于混合收集集合的处理策略,这节主要介绍在 Java 12 中同时也对 G1垃圾回收器进行了改进,使其能够在空闲时自动将 Java 堆内存返还给操作系统,这也是 Java 12 中的另外一项重大改进. 目前 Java 11 版本中包含的 G1 垃圾收集器暂时无法及时将已提交的 Java 堆内存返回给操作系统.为什么呢? G1目前只有在full GC或者concurrent cycle(并发处理周期)的时候才会归还内存,由于这两个场景都是G1极力避免的,因

SQL Server 2012 新特性:新增和修改函数

转换函数      1.PARSE Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别 SELECT PARSE ('2.111111' AS float ),CAST ('2.111111111111' AS FLOAT) ---------------------- ---------------------- 2.111111               2.111111111111 (1 row (s ) affected ) SELECT PARSE ('1

apache2.4:apache的安装及其新特性

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. Apache2.4新特性 1. 新增模块 Mod_proxy_fcgi:提供fcgi代理 Mod_ratelimit:限制用户带宽 Mod_request:过滤客户机请求 Mod_remoteip:匹配客户端的IP 2. 新特性 Mpm(工作模式):支持工作模式在apache运行时更改 但是要开启这种特性,在编译安装要启用这三种功能:--e

iOS9的新特性以及适配方案

1. 限制HTTP协议,全部改用更安全的HTTPS iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输.直接造成的情况就是App发请求的时候弹出网络无法连接.对于这个问题的解决方案,网上有一篇博客已经总结的很好了,我在这就简要的说明怎么处理这种问题. HTTPS和HTTP的区别在于哪里呢? 举个简单的栗子:原来的 HTTP 是塑料水管,容易被戳破:那么如今新设计的 HTTPS 就像是在原有的塑料水管之外, 再包一层金属水管.一来,原有的塑料水管照样

JDK10 新特性

关于至此,我从大一下学习,以及大二上的巩固,这应该是SE部分的最后一章节内容,介绍一下jdk10的新特性 jdk在更新10之后,出现很多新特性,根据我所观看的视频,主要提及以下几点新特性 1.新增var弱类型变量,可作为局部变量(不可作全局) 2.垃圾回收机制变为并行收集,每次jdk更新都会进行优化 类似,老年代用Parallel Obl 收集器 jdk9使用ParNew收集器 jdk10全面改为G1收集器,G1收集器是一个全收集器,jdk5时就出现G1,只不过在jdk10的时候技术变得成熟,变