1. 首页
  2. IT资讯

JDK 13 新特性一览

“u003Cpu003EJava后端,选择 u003Cu002Fpu003Eu003Cpu003E优质文章,及时送达u003Cu002Fpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002FRcsUnd92eoboDR” img_width=”640″ img_height=”29″ alt=”JDK 13 新特性一览” inline=”0″u003Eu003Cpu003E作者 | 木九天u003Cu002Fpu003Eu003Cpu003E链接 | my.oschina.netu002Fmdxlcju002Fblogu002F3107021 u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E1、switch优化更新u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003EJDK11以及之前的版本:u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003Eswitch (day) {u003Cu002Fcodeu003Eu003Ccodeu003E case MONDAY:u003Cu002Fcodeu003Eu003Ccodeu003E case FRIDAY:u003Cu002Fcodeu003Eu003Ccodeu003E case SUNDAY:u003Cu002Fcodeu003Eu003Ccodeu003E System.out.println(6);u003Cu002Fcodeu003Eu003Ccodeu003E break;u003Cu002Fcodeu003Eu003Ccodeu003E case TUESDAY:u003Cu002Fcodeu003Eu003Ccodeu003E System.out.println(7);u003Cu002Fcodeu003Eu003Ccodeu003E break; case THURSDAY:u003Cu002Fcodeu003Eu003Ccodeu003E case SATURDAY:u003Cu002Fcodeu003Eu003Ccodeu003E System.out.println(8);u003Cu002Fcodeu003Eu003Ccodeu003E break;u003Cu002Fcodeu003Eu003Ccodeu003E case WEDNESDAY:u003Cu002Fcodeu003Eu003Ccodeu003E System.out.println(9);u003Cu002Fcodeu003Eu003Ccodeu003E break;u003Cu002Fcodeu003Eu003Ccodeu003E}u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003EJDK12版本u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003Eswitch (day) {u003Cu002Fcodeu003Eu003Ccodeu003E case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);u003Cu002Fcodeu003Eu003Ccodeu003E case TUESDAY -> System.out.println(7);u003Cu002Fcodeu003Eu003Ccodeu003E case THURSDAY, SATURDAY -> System.out.println(8);u003Cu002Fcodeu003Eu003Ccodeu003E case WEDNESDAY -> System.out.println(9);u003Cu002Fcodeu003Eu003Ccodeu003E }u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003EJDK13版本u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003Estatic void howMany(int k) {u003Cu002Fcodeu003Eu003Ccodeu003E System.out.println(u003Cu002Fcodeu003Eu003Ccodeu003E switch (k) {u003Cu002Fcodeu003Eu003Ccodeu003E case 1 -> “one”u003Cu002Fcodeu003Eu003Ccodeu003E case 2 -> “two”u003Cu002Fcodeu003Eu003Ccodeu003E default -> “many”u003Cu002Fcodeu003Eu003Ccodeu003E }u003Cu002Fcodeu003Eu003Ccodeu003E );u003Cu002Fcodeu003Eu003Ccodeu003E}u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E2、文本块升级u003Cu002Fh1u003Eu003Ch2 toutiao-origin=”h3″u003E2.1、html例子u003Cu002Fh2u003Eu003Cpu003EJDK13之前u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003EString html = “<html>\n” +u003Cu002Fcodeu003Eu003Ccodeu003E ” <body>\n” +u003Cu002Fcodeu003Eu003Ccodeu003E ” <p>Hello, world<u002Fp>\n” +u003Cu002Fcodeu003Eu003Ccodeu003E ” <u002Fbody>\n” +u003Cu002Fcodeu003Eu003Ccodeu003E “<u002Fhtml>\n”;u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003EJDK13优化的:u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003EString html = “””u003Cu002Fcodeu003Eu003Ccodeu003E <html>u003Cu002Fcodeu003Eu003Ccodeu003E <body>u003Cu002Fcodeu003Eu003Ccodeu003E <p>Hello, world<u002Fp>u003Cu002Fcodeu003Eu003Ccodeu003E <u002Fbody>u003Cu002Fcodeu003Eu003Ccodeu003E <u002Fhtml>u003Cu002Fcodeu003Eu003Ccodeu003E “””;u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003E2.2、SQL变化u003Cu002Fh2u003Eu003Cpu003EJDK13之前u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003EString query = “SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n” +u003Cu002Fcodeu003Eu003Ccodeu003E “WHERE `CITY` = ‘INDIANAPOLIS’\n” +u003Cu002Fcodeu003Eu003Ccodeu003E “ORDER BY `EMP_ID`, `LAST_NAME`;\n”;u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003EJDK13u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003EString query = “””u003Cu002Fcodeu003Eu003Ccodeu003E SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`u003Cu002Fcodeu003Eu003Ccodeu003E WHERE `CITY` = ‘INDIANAPOLIS’u003Cu002Fcodeu003Eu003Ccodeu003E ORDER BY `EMP_ID`, `LAST_NAME`;u003Cu002Fcodeu003Eu003Ccodeu003E “””;u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch2 toutiao-origin=”h3″u003E2.3、解释u003Cu002Fh2u003Eu003Cpu003E文本块u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003E”””u003Cu002Fcodeu003Eu003Ccodeu003Eline 1u003Cu002Fcodeu003Eu003Ccodeu003Eline 2u003Cu002Fcodeu003Eu003Ccodeu003Eline 3u003Cu002Fcodeu003Eu003Ccodeu003E”””u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003E相当于字符串文字:u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003E”line 1\nline 2\nline 3\n”u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E3、动态CDS档案u003Cu002Fh1u003Eu003Cpu003Eu003Cstrongu003E目标:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E提高应用程序类 – 数据共享(AppCDS)的可用性。消除了用户进行试运行以创建每个应用程序的类列表的需要。u003Cu002Fpu003Eu003Cpu003E-Xshare:dumpu003Cu002Fpu003Eu003Cpu003E使用类列表由该选项启用的静态归档应继续工作。这包括内置类加载器和用户定义的类加载器的类。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E4、取消使用未使用的内存u003Cu002Fh1u003Eu003Cpu003Eu003Cstrongu003E摘要:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E增强ZGC以将未使用的堆内存返回给操作系统。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E动机:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003EZGC目前没有取消提交并将内存返回给操作系统,即使该内存长时间未使用。对于所有类型的应用程序和环境,此行为并非最佳, 尤其是那些需要u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-1″u003E关注u003Cu002Fiu003E内存占用的应用程序和环境 例如:通过使用支付资源的容器环境。应用程序可能长时间处于空闲状态并与许多其 他应用程序共享或竞争资源的环境。应用程序在执行期间可能具有非常不同的堆空间要求。u003Cu002Fpu003Eu003Cblockquote toutiao-origin=”blockquote” class=”pgc-blockquote-abstract”u003Eu003Cpu003E例如,启动期间所需的堆可能大于稳态执行期间稍后所需的堆。HotSpot中的其他垃圾收集器,如G1和Shenandoah,今天提供 了这种功能,某些类别的用户发现它非常有用。将此功能添加到ZGC将受到同一组用户的欢迎。u003Cu002Fpu003Eu003Cu002Fblockquoteu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E5、重新实现旧版套接字APIu003Cu002Fh1u003Eu003Cpu003Eu003Cstrongu003E摘要:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E使用更简单,更现代的实现替换java.net.Socket和java.net.ServerSocketAPI 使用的底层实现,易于维护和调试。新的实 现很容易适应用户模式线程,也就是光纤,目前正在Project Loom中进行探索。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E动机:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E在java.net.Socket和java.net.ServerSocketAPI,以及它们的底层实现,可以追溯到JDK 1.0。实现是遗留Java和C代 码的混合,维护和调试很痛苦。该实现使用线程堆栈作为Iu002FO缓冲区,这种方法需要多次增加默认线程堆栈大小。u003Cu002Fpu003Eu003Cpu003E该实现使用本机数据 结构来支持异步关闭,这是多年来微妙可靠性和移植问题的根源。该实现还有几个并发问题,需要进行大修才能正确解决。在未来的光 纤世界环境中,而不是在本机方法中阻塞线程,当前的实现不适用于目的。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E6、FileSystems.newFileSystem新方法u003Cu002Fh1u003Eu003Cpu003E核心库u002F java.nio中添加了FileSystems.newFileSystem(Path,Map u003Cu002Fpu003Eu003Cpu003E添加了三种新方法java.nio.file.FileSystems,以便更轻松地使用将文件内容视为文件系统的文件系统提供程序。u003Cu002Fpu003Eu003Cblockquoteu003Eu003Cdivu003Eu003Cpu003E1、newFileSystem(Path)u003Cu002Fpu003Eu003Cpu003E2、newFileSystem(Path, Mapu003Cbru003E3、newFileSystem(Path, Mapu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fblockquoteu003Eu003Cpu003E添加为u003Ccodeu003Eu003Cstrong toutiao-origin=”span” class=”highlight-text”u003EnewFileSystem(Path, Map<String, ?>)u003Cu002Fstrongu003Eu003Cu002Fcodeu003E已使用现有newFileSystem(Path, ClassLoader)并指定类加载器 的代码创建源(但不是二进制)兼容性问题。例如,由于引用newFileSystem不明确,因此无法编译以下内容:u003Cu002Fpu003Eu003Cpreu003Eu003Cpu003Eu003Ccodeu003EFileSystem fs = FileSystems.newFileSystem(path, );u003Cu002Fcodeu003Eu003Cu002Fpu003Eu003Cu002Fpreu003Eu003Cpu003E为了避免模糊引用,需要修改此代码以将第二个参数强制转换为java.lang.ClassLoader。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E7、nio新方法u003Cu002Fh1u003Eu003Cpu003E核心库u002F java.nio中新的java.nio.ByteBuffer批量获取u002F放置方法转移字节而不考虑缓冲区位置。u003Cu002Fpu003Eu003Cpu003Ejava.nio.ByteBufferjava.nio现在,其他缓冲区类型定义绝对批量get和put传输连续字节序列的方法,而不考虑或影响缓冲区位置。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E8、核心库u002F java.timeu003Cu002Fh1u003Eu003Cpu003E新日本时代名称Reiwa,此更新中添加了代表新Reiwa时代的实例。与其他时代不同,这个时代没有公共领域。它可以通过调用 JapaneseEra.of(3)或获得JapaneseEra.valueOf(“Reiwa”)。JDK13及更高版本将有一个新的公共领域来代表这个时代。u003Cu002Fpu003Eu003Cpu003ENewEra从2019年5月1日开始的日本时代的占位符名称“ ”已被新的官方名称取代。依赖占位符名称(请参阅JDK-8202088)获 取新时代单例(JapaneseEra.valueOf(“NewEra”))的应用程序将不再起作用。请参阅JDK-8205432u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E9、核心库u002F java.util中:I18Nu003Cu002Fh1u003Eu003Cpu003E支持Unicode 12.1,此版本将Unicode支持升级到12.1,其中包括以下内容:u003Cu002Fpu003Eu003Cblockquoteu003Eu003Cpu003Ejava.lang.Character支持12.1级的Unicode字符数据库,其中12.0从11.0开始增加554个字符,总共u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4″u003E137u003Cu002Fiu003E,928个 字符。这些新增内容包括4个新脚本,总共u003Ci class=”chrome-extension-mutihighlight chrome-extension-mutihighlight-style-3″u003E150u003Cu002Fiu003E个脚本,以及61个新的表情符号字符。U+32FF SQUARE ERA NAME REIWA从 12.0开始,12.1只添加一个字符。java.text.Bidi和java.text.Normalizer类分别支持12.0级的Unicode标准附件, #9和#15。java.util.regexpackage支持基于12.0级Unicode标准附件#29的扩展字形集群。u003Cu002Fpu003Eu003Cu002Fblockquoteu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E10、热点u002F GCu003Cu002Fh1u003Eu003Cblockquoteu003Eu003Cdivu003Eu003Cpu003E10.1 JEP 351 ZGC取消提交未使用的存储器u003Cu002Fpu003Eu003Cpu003E10.2 添加了-XXSoftMaxHeapSize标志u003Cu002Fpu003Eu003Cpu003E10.3 ZGC支持的最大堆大小从4TB增加到16TBu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fblockquoteu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E11、安全库u002F java.securityu003Cu002Fh1u003Eu003Cpu003E11.1 该com.sun.security.crl.readtimeout系统属性设置为CRL检索的最大读取超时,单位为秒。如果尚未设置该属性,或者其值为负,则将其设置为默认值15秒。值0表示无限超时。u003Cu002Fpu003Eu003Cpu003E11.2 新的keytool -showinfo -tls用于显示TLS配置信息的命令keytool -showinfo -tls添加了一个显示TLS配置信 息的新命令。u003Cu002Fpu003Eu003Cpu003E11.3 SunMSCAPI提供程序现在支持以下一代加密(CNG)格式读取私钥。这意味着CNG格式的RSA和EC密钥可从Windows密钥 库加载,例如“Windows-MY”。与EC(签名算法SHA1withECDSA,SHA256withECDSA等等)也支持。u003Cu002Fpu003Eu003Cpu003Eu003Cu002Fpu003Eu003Ch1 toutiao-origin=”h2″u003E12、删除功能u003Cu002Fh1u003Eu003Cpu003E删除的部分功能:u003Cu002Fpu003Eu003Cpu003E12.1 核心库u002Fjava.net中,不再支持Pre-JDK 1.4 SocketImpl实现java.net.SocketImpl此版本已删除对为JavaSE1.3及更早版本编译的自定义实现的支持。此更改对SocketImpl为Java SE 1.4(2002年发布)或更新版本编译的实现没有影响。u003Cu002Fpu003Eu003Cpu003E12.2 核心库u002Fjava.lang中,删除运行时跟踪方法,过时的方法traceInstructions(boolean),并traceMethodCalls(boolean)已经从删除java.lang.Runtime类。这些方法对许多版本都不起作用,它们的预期功能由Java虚拟机工具接口(JVMTI)提供。u003Cu002Fpu003Eu003Cpu003Eu003Cstrong toutiao-origin=”span” class=”highlight-text”u003E你要的 Java ,全都有。u003Cu002Fstrongu003Eu003Cu002Fpu003E”

原文始发于:JDK 13 新特性一览

主题测试文章,只做测试使用。发布者:℅傍ㄖ免沦陷dε鬼,转转请注明出处:http://www.cxybcw.com/17984.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code