Java 8和Java 14之间的新功能

从版本9开始,Java每6个月就会有新功能,因此很难跟踪这些新更改。 互联网上的大多数信息都描述了最近两个Java版本之间的变化。 但是,如果您的情况与我相似,则说明您使用的不是Java的最新版本,而是使用了较旧的Java版本。

然后,知道自您现在使用的版本以来,或者在您现在使用的版本与您要开始使用的版本之间添加了哪些新功能很有用。 因此,对于每个新的Java版本,我已经编译了一个表,其中包含自Java 8起添加的所有新功能。 第一个表包含Java语言的更改,第二个表包含该语言之外的其他内容,例如命令行工具或JVM改进。

请注意,我没有包括所有新功能和API附加功能,只有最有用的功能。 为了使清单简短,有一些我不常用的新功能。

您可以在下面找到表格:

  • 新的Java语言功能
  • OpenJDK中的新工具和功能
  • 不推荐使用/已删除的功能和API

自Java 8以来的新Java语言功能

特征 以来 从此开始预览/孵化
记录类型 14
instanceof的模式匹配
(如果(x instanceOf String){x在这里是String}
14
文字区块 13
开关表达式 (也在JDK 13中为JEP 354 ) 14 12
CompletionStage类中异常的新变体(异步,组件) 12
字符串API的改进 (缩进,转换) 12
CompactNumberFormat类 12
字符串API的改进 (重复,isBlank,条带,行) 11
Lambda参数的局部变量语法 11
新的HTTP客户端API 11 9
局部变量类型推断 10
流API(反应流) 9
Java Platform Module System(模块) 9
收集工厂方法 9
流API的改进 (takeWhile,dropWhile,ofNullable,条件迭代) 9
多分辨率图像API 9
堆栈步行API 9
this.getClass()。getPackageName() 9
流程API更新 (有关流程的详细信息,例如ID,onExit,destroy) 9
CompletableFuture API增强功能 (延迟,超时) 9
接口私有方法 9
从and forRemoval弃用注解 9
接口默认方法和静态方法 8
方法参考 8
选修课 8
Lambda表达式 8
功能接口 8
流API 8
有效的最终变量 8
重复注释 8
新日期时间API 8

自OpenJDK 8以来的新JDK工具和功能

工具/功能 以来 自实验
包装工具 14
有用的NullPointerExceptions 14
雪兰多GC 12
Epsilon(无操作)GC 11
Z气相色谱 11
基于Java的实验性JIT编译器 (Graal VM) 10
Docker容器支持 (-XX:-UseContainerSupport) 10和
8u191
灵活的堆大小选择 (-XX:MaxRAMPercentage) 10和
8u191
应用类别-数据共享 10
捷联 9
JShell(Java REPL) 9
多版本JAR文件 9
紧凑弦 9

不推荐使用/已删除的功能和API:

功能/ API 自弃用 自从删除
Solaris和SPARC端口 14
ParallelScavenge + SerialOld GC组合 14
气相色谱仪 9 14
Pack200工具和API 11 14
Nashorn JavaScript引擎 11
Java FX (已移至OpenJFX ) 11
Java EE和CORBA模块 9 11
javah本机头 生成器 10
jhat堆可视化器 9
启动时JRE版本选择 9
很少使用的GC组合 8 9
Applet API 9

有关更多详细信息, 尽管浏览了Java的所有历史记录,但javaalmanac.io/目录对于浏览Java中的更改非常有用。 它可以为您提供所选Java版本之间 (例如Java 8和Java 11之间)的API的完全不同。 非常有用,如果您正在考虑迁移到特定的Java版本。

翻译自: https://www.javacodegeeks.com/2020/03/new-features-between-java-8-and-java-14.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql中如何卸载插件_Eclipse中如何卸载插件

很久没用Eclipse了,今天打开的时候,突然报Android开发插件需要更新。打开插件管理页面,更新Android插件,又提示和旧版本有冲突,心想只能卸载了重新安装了。找了半天没找到在哪下载,把Eclipse目录下的plugin…

python io_NumPy IO

NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据。 NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。 npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。 常用的 IO 函数有: load() 和 save() 函数是读写文件数组数据的两个…

Java 14:instanceof的模式匹配

Java 14引入了pattern Matching for instanceof (另一种预览语言功能) ,从而消除了在使用instanceof时进行强制转换的需要。 例如,考虑以下代码: if (obj instanceof String) { String s (String) obj; System.out.pr…

centos7 mysql启动后端口_centos7 修改mysql5.7默认端口后启动异常

关闭selinux的方法有两种:临时关闭和永久关闭。查看selinux的状态:sestatus[root162-219-29-3 ~]# sestatusSELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: e…

computed怎么使用_Vuex 基本使用

简单介绍iPhone X 是 iPhone, Vuex 并不是 Vue.我们查看官方文档可以知道:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。怎么理解呢?就拿我两位数的资产的银行卡来说吧,基本的存钱取钱,就是状态管理。怎么用我们将以一个简…

自然数 素数 质数_在Java中获取素数的无限列表

自然数 素数 质数一个常见的问题是确定数字的素因式分解。 蛮力方法是审判部门( 维基百科 , 可汗学院 ),但是如果必须考虑多个数字,这需要大量的浪费工作。 一种广泛使用的解决方案是Eratosthenes筛( 维基…

mysql 大数据 join_MySQL JOIN算法原理

MySQL的JOIN相关操作,是通过“嵌套循环连接算法,NLJ”或者该算法的优化变体“块嵌套循环连接算法,BNLJ”来实现的。##### 嵌套循环连接算法两个表join时,可以简单理解为两层for循环,外层循环一般称作驱动表&#xff0c…

windows安装python3步骤_Windows下python3和python2安装与一起使用

一、python2和python3安装 2、安装步骤,直接双击运行,记得勾选添加环境变量就可以。图片1.png 3、安装已经选择了添加这个环境变量,所以不用再去配置。 如果没有勾选,得自己去设置。 鼠标右键我的电脑 -> 属性 -> 点击高级系…

mysql ondelete_MySQL on delete cascade语句

在本教程中,您将学习如何使用MySQL ON DELETE CASCADE引用操作来执行外键从多个相关表中删除数据。在上一个教程中,我们学习了如何使用单个DELETE语句从一个或多个相关表中删除数据。但是,MySQL提供了一种更为有效的方法,称为ON D…

您想了解的所有Throwable

本文是有关异常的教程。 但不是通常的一种。 其中有许多内容可以告诉您异常的含义,如何抛出异常,捕获异常,已检查异常与运行时异常之间的区别,等等。 没有必要了。 这对您来说也很无聊。 如果没有,那么请阅读其中的一本…

python构建二叉树_BinaryTree:学习二叉树的Python库

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。简介: 您是否在为考试、作业或技术面试学习二叉树? Binarytree是一个Python库,它通过一个简单的API生成二叉树,可以进行检查和操作。它让您…

mysql union as 注入_sql注入入门 之 mysql 常规注入 [ union方式 ]

1,常规数字型 mysql 实例注入点,如下:1https://www.vuln.com/md_materia_profile_view.php?viewid22,依旧先尝试下经典的单引号,如下,虽然没暴露出明显的数据库报错信息,但我们发现,此时返回的页面已经异常了,经验判断,十有八九是个注入点,先不管那么多,我们继续1https://www.…

gradle docker_带有Gradle的Docker容器分为4个步骤

gradle docker您是否需要通过Java Web应用程序创建Docker映像? 您在使用Gradle吗? 如果是这样,那么您距Docker nivana仅4步之遥。 对于此示例,我将使用一个简单的Spring Boot应用程序。 您可以在我的名为galoshe的Github存储库中…

mysql数据库连接关闭_解决mysql数据库连接自动关闭问题

MySQL是一个小型关系型数据库管理系统,由于MySQL体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。关于mysql自动关闭服务的现象,可以通过mysql服务器…

python socket编程_Python学习记录-socket编程

1. OSI七层模型详解2. Python socket 什么是 Socket? Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 Python 提供了两个级别访问的网络服务: 低级别的网络服…

REST / HTTP方法:POST与PUT与PATCH

每个HTTP请求都包含一个方法 (有时称为verb ),该方法指示对标识的资源执行的操作。 在构建RESTful Web服务时,HTTP方法POST通常用于创建资源,而PUT用于资源更新。 尽管在大多数情况下这很好,但使用PUT进行…

判断frame是否已创建_类的创建

1. 士兵 许三多 有一把 AK47 2. 士兵 可以开火 3. 枪 能够 发射 子弹 4. 枪 装填 子弹---增加子弹数量 class Gun:def __init__(self,type):self.type type# 刚开始枪没有子弹self.bullet_count 0def __str__(self):return ("%s 已到位" % self.type)def shoot(sel…

mysql 安装盒子_Windows2008 装 MySQL 问题

昨天在2008里装MySQL,遇以了一些问题,装的是mysql-5.6.20-winx64.msi版本,不知道是版本太新还是兼容,还是系统权限配置问题,老是报错,多数是杂乱的错误,这里主要记一下MySQL的错误:安…

@select注解_Mybatis基本知识十七:Mybatis注解式开发-单表注解式开发

上一篇文章:《Mybatis基本知识十六:查询缓存之第三方查询缓存》若文中有纰漏,请多多指正!!!1.前言使用Mybatis进行开发,不仅可以使用mapper配置文件进行开发,也可以使用注解的方式。映射文件中无…

mysql主从切换机制torch_MySQL Replication设置(Master/Slave)实现主从复制

一、Master配置1、my.cnf配置# vim /etc/mysql/mariadb.conf.d/50-server.cnf[mysqld]log-binmysql-bin //[必须]启用二进制日志server-id140 //[必须]服务器唯一ID,默认是1,一般取IP最后一段2、重启mysqlsudo service mysql restart3、在主服务器上建立…