zoukankan      html  css  js  c++  java
  • 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
     Python
    C++".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值
  • 相关阅读:
    vue项目搭建步骤
    文件的操作总结
    WPF 使用皮肤影响按钮自定义
    WPF中:未找到可以 register Name“XXX”的 NameScope
    WPF Label或者其他控件(以Content显示内容的)单个下划线不显示的问题。
    wpf 中GridControl后面总是多一空白列
    WPF设置控件层次问题(最顶层,最底层)
    WPF中设置TreeView的高度随着窗口改变
    C# 检测文件是否被其他进程占用
    XML文件的操作
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/11766483.html
Copyright © 2011-2022 走看看