预览版:该功能在当前版本可以使用,如果效果不是很好的话,可能以后的其他版本就会删去该功能。

最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。

1、Switch(最终版)

和之前的 jdk12、13 功能一样,只不过确定下来为最终版

int numLetters = switch (day) {     
     case MONDAY, FRIDAY, SUNDAY -> 6;   
     case TUESDAY -> 7;     
     case THURSDAY, SATURDAY -> 8;
    case WEDNESDAY -> 9;
};

2、垃圾回收器(更新优化)

1、Windows的ZGC:现在可以在Windows上作为实验功能使用,要启用它,请使用JVM标志-XX:+UnlockExperimentalVMOptions
-XX:+UseZGC。 2、Mac的ZGC:现在可作为macOS上的实验功能使用。要启用它,请使用JVM标志-XX:+UnlockExperimentalVMOptions -XX:+UseZGC。 3、并行GC的改进:并行GC已采用与其他收集器相同的任务管理机制来调度并行任务。这可能会显着提高性能。由于这一变化,以下产品标志 已过时:-XX:BindGCTaskThreadsToCPUs,-XX:UseGCTaskAffinity,和-XX:GCTaskTimeStampEntries。    
4、G1 NUMA感知内存分配:现在尝试跨垃圾收集在年轻一代的同一NUMA节点上分配并保留对象。这类似于并行GC NUMA意识。G1尝试使用
严格的交错在所有可用的NUMA节点上均匀分配Humongous和Old区域。从年轻一代复制到老一代的对象的放置是随机的。这些新的NUMA感知
内存分配试探法通过使用-XX:+UseNUNMA命令行选项自动启用。

3、Record(预览功能)

@Data @AllArgsConstructor class Group {
_// 组名
_ private String name;
_// 人数
_ private int nums;
}

使用它可以替代构造器、equal 方法、toString 方法,hashCode 方法

Point(String name,int nums){}

Java 语言中一种新型的类型声明。像枚举一样 enum, record 是类的受限形式。它声明其表示形式,并提交与该表示形式匹配的 API。记录放弃了类通常享有的自由:将 API 与表示分离的能力。作为回报,记录获得了很大程度的简洁性。

4、货币格式(优化)

可以通过 NumberFormat.getCurrencyInstance(Locale)使用“ u-cf-account” Unicode区域设置扩展名来获得具有记帐样式的
货币格式实例,其中金额在某些区域设置中用括号表示,例如,Locale.US,它将格式化为($3.27)而不是-$3.27。

而之前的版本是前边结果为负数。

5、NIO 的 Channel 通道

阐明ReadableByteChannel.read()的规范和规格DatagramChannel.receive(),FileChannel.read(ByteBuffer,long),Read
ableByteChannel.read(),ScatteringByteChannel.read()方法已经在此版本已经更新到指定的IllegalArgumentException,如果
(任何)缓冲区参数(S)是只读的抛出。

6、删除功能

1、CMS垃圾收集器已被删除。-XX:UseConcMarkSweepGC和别名-Xconcgc,-Xnoconcgc以及所有CMS特定选项(太多,无法列出)都已废弃。

2、删除了安全库java.security.acl API

7、instanceof 的模式匹配(预览版)

提供模式匹配来 增强 Java 编程语言 instanceof

if (obj instanceof String s) {
    _// can use s here
_ } else {
// can’t use s here }

8、弃用****功能

线程:

不建议使用线程挂起、删除,下面的方法中涉及的线程挂起Thread,并且Thread已在本版本中晚期弃用,Thread.suspend(),Thread.
resume(),ThreadGroup.suspend(),ThreadGroup.resume(),ThreadGroup.allowThreadSuspension(boolean)这些方法将在
将来的版本中删除。

垃圾回收器:

弃用ParallelScavenge + SerialOld GC组合,任何UseParallelOldGC用于启用此垃圾回收算法组合的命令行选项的使用,都会引
起弃用警告。嵌入式替换是通过-XX:+UseParallelGC在命令行上使用ParallelScavenge + ParallelOld垃圾收集器。

椭圆曲线:

security-libs / javax.crypto,已过时的旧椭圆曲线去除。

9、注意点

线程中断状态始终可用:

该规范java.lang.Thread::interrupt允许实现仅跟踪活动线程的中断状态,并且以前就是这种情况。从此版本开始,a的中断状态
Thread始终可用,并且如果您在线程t启动之前或终止之后中断线程,查询t.isInterrupted()将返回true。

DatagramSocket.send 和 MulticastSocket.send 抛出 IllegalArgumentException 当套接字没有连接和数据包不包含地址:

如果套接字未连接且没有套接字地址,send则由DatagramSocket和定义的方法MulticastSocket已更改为抛出。

MulticastSocket  getOption(IP_MULTICAST_IF)未设置传出接口时返回 null:

该MulticastSocket方法getOption已更改为符合中描述的行为StanndardSocketOptions.IP_MULTCAST_IF。如果没有设置接口,
MulticastSocket.getOption(StanndardSocketOptions.IP_MULTCAST_IF)现在返回null。

MulticastSocket 上 getOption / 的 SetOption 为 IP_MULTICAST_LOOP 个符合随着 StandardSocketOptions.IP_MULTICAST_LOOP 规范的行为:

该MulticastSocket方法getOption和setOption已更改以符合所描述的行为StandardSocketOptions.IP_MULTICAST_LOOP规范,
MulticastSocket.getOption(StanndardSocketOptions.IP_MULTCAST_IF)现在,如果启用了环回模式,则返回true。
设置MulticastSocket.getOption(StanndardSocketOptions.IP_MULTCAST_IF)启用回送模式。

JDK14 新特性详解,2020-03-17 正式发布相关推荐

  1. 还在用JDK6的同学,来看看JDK13新特性详解吧

    点击上方"搜云库技术团队"关注,选择"设为星标" 回复"面试题"或"1024"获取 4T 学习资料 在 JDK 版本的世 ...

  2. laya龙骨换装_DragonBones 5.3 新特性详解

    本帖最后由 superlancelot 于 2017-7-12 13:40 编辑 DragonBones 5.3新特性详解 本次DragonBones5.3 相对上一个版本5.2提供了很多新增功能和用 ...

  3. java11 新特性 详解

    为什么80%的码农都做不了架构师?>>>    引言: 点击-->java10 新特性 详解 点击-->java9 新特性 详解 点击-->java8 新特性 详解 ...

  4. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  5. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  6. Java9 新特性 详解

    目录 Java9 新特性 详解 1.Java9新特性之---目录结构 2.Java9新特性之---JShell工具 3.Java9新特性之---模块化 4.Java9新特性之---多版本兼容Jar包 ...

  7. oracle dataguard详解,Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向

    Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向 在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强, ...

  8. java8-stream新特性详解及实战

    Java8 Stream新特性详解及实战 背景介绍 在阅读Spring Boot源代码时,发现Java 8的新特性已经被广泛使用,如果再不学习Java8的新特性并灵活应用,你可能真的要out了.为此, ...

  9. Java EE 8的五大新特性详解

    Java EE 8的五大新特性详解 2018.4.3 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. Java EE 8带来了很多新特性,其中最好的新特性有下面五个. 备受期待的Ja ...

最新文章

  1. 指针 与 swift 中的引用
  2. python-- Image 模块
  3. mysql count() 写法,MySQL COUNT()用法及代碼示例
  4. Django学习(一)
  5. 2013年、2012、2011年中国软件业收入百强名录 看中国软件业这三年的变化
  6. C语言与C++优缺点
  7. 什么是类加载器?类加载器有哪些
  8. 偏置方差分解Bias-variance Decomposition
  9. HDU1198-----并查集
  10. 安卓系统管理软件_便捷仓库管理软件智能管理系统
  11. android 剪切并上传图片
  12. 父亲节华为P40软文营销广告
  13. CES2018,三星为何将MicroLED应用于电视而非手机?
  14. hdu4417:线段树单点更新区间求和,离线 Super Mario
  15. 多多情报通:拼多多修改关键词会降权吗?有什么影响?
  16. 百旺信息服务器端口,各省百旺参数设置服务器地址
  17. 刚子扯谈:未完待续的微信5.0
  18. Python之洗牌游戏
  19. android百分比布局失效,Android Studio不能添加百分比布局的依赖,书和AS不一样,老报错,怎么弄?急~~~...
  20. The Foundry NUKE 12 mac版(电影特效合成制作软件)

热门文章

  1. 整数和实数,单精度和双精度
  2. python之父北京尚学堂_尚学堂86---115Python_Note
  3. 快递100接口查询限制分析
  4. webservice 搭建(一)
  5. 只有程序员才看得懂的元宵节灯谜
  6. cvs100e_CVS100E断路器|施耐德CVS100E塑壳断路器
  7. 【转】 什么是Transact-SQL?
  8. infer的用法_infer是什么意思|infer的音标|infer的用法 - 英语词典
  9. 小前端有话说之:[Vue warn]: Avoid mutating a prop directly since the value will be overwritte父子组件传值问题及sync用法
  10. css让每个元素之间隔开