Java15的新特性( 二 )


381:Remove the Solaris and SPARC Ports

Solaris and SPARC Ports在JDK14被标记为废弃,在JDK15版本正式移除
383:Foreign-Memory Access API (Second Incubator)
Foreign-Memory Access API在JDK14被作为incubating API引入,在JDK15处于Second Incubator
384:Records (Second Preview)
Records在JDK14被作为preview引入,在JDK15处于Second Preview
385:Deprecate RMI Activation for Removal
JDK15废弃了RMI Activation,后续将被移除
细项解读上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 15 Release Notes,这里举几个例子 。
添加项
  • Support for Unicode 13.0 (JDK-8239383)
升级了Unicode,支持Unicode 13.0
  • Added isEmpty Default Method to CharSequence (JDK-8215401)
给CharSequence新增了isEmpty方法 java.base/java/lang/CharSequence.java
 /**     * Returns {@code true} if this character sequence is empty.     *     * @implSpec     * The default implementation returns the result of calling {@code length() == 0}.     *     * @return {@code true} if {@link #length()} is {@code 0}, otherwise     * {@code false}     *     * @since 15     */  default boolean isEmpty() {      return this.length() == 0;  }
  • Added Support for SO_INCOMING_NAPI_ID Support (JDK-8243099)
jdk.net.ExtendedSocketOptions新增了SO_INCOMING_NAPI_ID选型
  • Specialized Implementations of TreeMap Methods (JDK-8176894)
JDK15对TreeMap提供了putIfAbsent, computeIfAbsent, computeIfPresent, compute, merge方法提供了overriding实现
  • New Option Added to jcmd for Writing a gzipped Heap Dump (JDK-8237354)
jcmd的GC.heap_dump命令现在支持gz选型,以dump出gzip压缩版的heap;compression level从1(fastest)到9(slowest, but best compression),默认为1
  • New System Properties to Configure the TLS Signature Schemes (JDK-8242141)
【Java15的新特性】新增了jdk.tls.client.SignatureSchemes及jdk.tls.server.SignatureSchemes用于配置TLS Signature Schemes
  • Support for certificate_authorities Extension (JDK-8206925)
支持certificate_authorities的扩展
移除项
  • Obsolete -XX:UseAdaptiveGCBoundary (JDK-8228991)
淘汰了-XX:UseAdaptiveGCBoundary
废弃项
  • Deprecated -XX:ForceNUMA Option (JDK-8243628)
废弃了ForceNUMA选项
  • Disable Native SunEC Implementation by Default (JDK-8237219)
默认禁用了Native SunEC Implementation
已知问题
  • java.net.HttpClient Does Not Override Protocols Specified in SSLContext Default Parameters (JDK-8239594)
HttpClient现在没有覆盖在SSLContext Default Parameters中指定的Protocols
其他事项
  • DatagramPacket.getPort() Returns 0 When the Port Is Not Set (JDK-8237890)
当DatagramPacket没有设置port的时候,其getPort方法返回0
  • Improved Ergonomics for G1 Heap Region Size (JDK-8241670)
优化了默认G1 Heap Region Size的计算
小结Java15主要有如下几个特性
  • 339:Edwards-Curve Digital Signature Algorithm (EdDSA)
  • 360:Sealed Classes (Preview)
  • 371:Hidden Classes
  • 372:Remove the Nashorn JavaScript Engine
  • 373:Reimplement the Legacy DatagramSocket API
  • 374:Disable and Deprecate Biased Locking
  • 375:Pattern Matching for instanceof (Second Preview)
  • 377:ZGC: A Scalable Low-Latency Garbage Collector
  • 378:Text Blocks
  • 379:Shenandoah: A Low-Pause-Time Garbage Collector
  • 381:Remove the Solaris and SPARC Ports
  • 383:Foreign-Memory Access API (Second Incubator)
  • 384:Records (Second Preview)
  • 385:Deprecate RMI Activation for Removal
doc
  • JDK 15 Features
  • JDK 15 Release Notes
  • Oracle JDK 15 Release Notes
  • Java SE deprecated-list
  • The Arrival of Java 15
  • Java 15 and IntelliJ IDEA




推荐阅读