Java 11 新特性解读(1)

news2024/11/28 10:39:08

目录

前言

新增了一系列字符串处理方法

Optional 加强 

 局部变量类型推断升级


前言

北京时间2018年9月26日,Oracle官方宣布Java 11正式发布。这是Java大版本周期变化后的第一个长期支持版本,非常值得关注。从官网即可下载,最新发布的Java11将带来ZGC、Http Client等重要特性,一共包含17个JEP(JDK EnhancementProposals,JDK增强提案)。其实,总共更新不止17个,只是我们更关注如下的17个JEP更新。

 JDK 11将是一个企业不可忽视的版本。从时间节点来看,JDK 11的发布正好处在JDK 8免费更新到期的前夕,同时JDK 9、10也陆续成为“历史版本”,下面是Oracle JDK支持路线图:

JDK 11是一个长期支持版本(LTS, Long-Term-Support)

对于企业来说,选择11将意味着长期的、可靠的、可预测的技术路线图。其中免费OpenJDK11确定将得到OpenJDK社区的长期支持,LTS版本将是可以放心选择的版本。

从JVM GC的角度,JDK11引入了两种新的GC,其中包括也许是划时代意义的ZGC,虽然其目前还是实验特性,但是从能力上来看,这是JDK的一个巨大突破,为特定生产环境的苛刻需求提供了一个可能的选择。例如,对部分企业核心存储等产品,如果能够保证不超过10ms的GC暂停,可靠性会上一个大的台阶,这是过去我们进行GC调优几乎做不到的,是能与不能的问题。

 新的长期支持版本每三年发布一次,根据后续的发布计划,下一个长期支持版Java 17 将于2021年发布。

官网公开的17 个JEP(JDK Enhancement Proposal 特性增强提议) 

181: Nest-Based Access Control(基于嵌套的访问控制)
309: Dynamic Class-File Constants(动态的类文件常量)
315: Improve Aarch64 Intrinsics(改进 Aarch64 Intrinsics)
318: Epsilon: A No-Op Garbage Collector(Epsilon 垃圾回收器,又被称为"No-Op(无操作)"回收器)320: Remove the Java EE and CORBA Modules(移除 Java EE 和 CORBA 模块,JavaFX 也已被移除)321: HTTP Client (Standard)
323: Local-Variable Syntax for Lambda Parameters(用于 Lambda 参数的局部变量语法)
324: Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法实现的密钥协议)
327: Unicode 10328: Flight Recorder(飞行记录仪)
329: ChaCha20 and Poly1305 Cryptographic Algorithms(实现 ChaCha20 和 Poly1305 加密算法)
330: Launch Single-File Source-Code Programs(启动单个 Java 源代码文件的程序)
331: Low-Overhead Heap Profiling(低开销的堆分配采样方法)
332: Transport Layer Security (TLS) 1.3(对 TLS 1.3 的支持)
333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段)
335: Deprecate the Nashorn JavaScript Engine(弃用 Nashorn JavaScript 引擎)
336: Deprecate the Pack200 Tools and API(弃用 Pack200 工具及其 API)

新增了一系列字符串处理方法

判断字符串是否为空白       

 " ".isBlank(); // true

去除首尾空白        

" Javastack ".strip(); // "Javastack"

去除尾部空格        

" Javastack ".stripTrailing(); // " Javastack"

去除首部空格      

" Javastack ".stripLeading(); // "Javastack "

复制字符串        

"Java".repeat(3);// "JavaJavaJava"

行数统计       

 "A\nB\nC".lines().count(); // 3

Optional 加强 

Optional也增加了几个非常酷的方法,现在可以很方便的将一个Optional转换成一个Stream,或者当一个空Optional时给它一个替代的。

 局部变量类型推断升级

在var上添加注解的语法格式,在jdk10中是不能实现的。在JDK11中加入了这样的语法。

//错误的形式: 必须要有类型, 可以加上var

//Consumer con1 = (@Deprecated t) ->System.out.println(t.toUpperCase());

//正确的形式:

//使用var的好处是在使用lambda表达式时给参数加上注解。

Consumer con2 = (@Deprecated var t) ->System.out.println(t.toUpperCase());

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

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

相关文章

[C++] 自定义的类如何使用“cout“和“cin“?(含日期类实现)

一、引言 在C中,“cin”和"cout"可以说是区别于C语言的一大亮点。 但是,它的自动识别类型,其本质不过是运算符重载。若真到了能够“自动识别”的那一天,人类大概也能进入新的纪元了罢。 对于我们自己写的类&#xff…

uni-app之app上传pdf类型文件

通过阅读官方文档发现,uni.chooseFile在app端不支持非媒体文件上传; 可以使用这个插件,验证过可以上传pdf;具体使用可以去看文档 插件地址 就是还是会出现相机,这个可能需要自己解决下 实现功能:上传只能上…

vscode ssh远程的config/配置文件无法保存解决

问题 之前已经有了一个config,我想更改连接的地址和用户名,但是无法保存,显示需要管理员权限,但以管理员启动vscode或者以管理员权限保存都不行 未能保存“config”: Command failed: “D:\vscode\Microsoft VS Code\bin\code.c…

ssm+vue基于java的少儿编程网上报名系统源码和论文PPT

ssmvue基于java的少儿编程网上报名系统源码和论文PPT006 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 摘 要 在国家重视教育影响下,教育部门的密确配合下&#…

如何将Linux上的cpolar内网穿透设置成 - > 开机自启动

如何将Linux上的cpolar内网穿透设置成 - > 开机自启动 文章目录 如何将Linux上的cpolar内网穿透设置成 - > 开机自启动前言一、进入命令行模式二、输入token码三、输入内网穿透命令 前言 我们将cpolar安装到了Ubuntu系统上,并通过web-UI界面对cpolar的功能有…

[YAPI]导出API文档

1.登录点击进去,点击项目2.点击接口,点击编辑,划到最下面,开启开放接口3.点击数据管理, 选择你要的数据导出格式,点击公开接口, 导出完别忘记关闭,防止别人导的时候将你开启的 也一并下载下来

API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南

什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…

springboot教务综合管理系统java学生教师班级课题jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 springboot教务综合管理系统 系统有1权限&#xff1a…

全球外贸b2b2c跨境电商购物网站开源搭建

要搭建一个全球外贸B2B2C跨境电商购物网站,需要采取以下步骤(以下步骤不分先后): 设计系统架构首先需要设计系统的整体架构,确定系统的技术选型、功能模块和业务流程等。可以考虑使用分布式架构,将系统划分…

恒盛策略:沪指冲高回落跌0.26%,酿酒、汽车等板块走弱,燃气股拉升

10日早盘,两市股指盘中冲高回落,半日成交约4200亿元,北向资金净卖出超20亿元。 到午间收盘,沪指跌0.26%报3235.9点,深成指跌0.54%,创业板指跌0.28%;两市算计成交4202亿元,北向资金净…

RocketMQ 延迟消息

RocketMQ 延迟消息 RocketMQ 消费者启动流程 什么是延迟消息 RocketMQ 延迟消息是指,生产者发送消息给消费者消息,消费者需要等待一段时间后才能消费到。 使用场景 用户下单之后,15分钟未支付,对支付账单进行提醒或者关单处理…

C++中的typeid

2023年8月10日,周四下午 目录 概述typeid的用法用法1用法2用法3举例说明 概述 typeid是 C 中的运算符,用于获取表达式或类型的运行时类型信息。 它返回一个std::type_info对象,该对象包含有关类型的信息,例如类型的名称。 type…

怎样学会单片机

0、学单片机首先要明白,一个单片机啥也干不了,学单片机的目的是学习怎么用单片机驱动外部设备,比如数码管,电机,液晶屏等,这个需要外围电路的配合,所以学习单片机在这个层面上可以等同为学习单片…

南大实验pa0:安装环境

安装untubu没问题,但是切到清华软件园之后,问题百出。记录一下 问题1 如上图所示,在安装build-essential的时候出现了问题 The following packages have unmet dependencies:g-11 : Depends: gcc-11-base ( 11.2.0-19ubuntu1) but 11.4.0-1…

杭州企业可以用DV https证书吗

DV https证书是入门级的https证书,也可以叫DV基础型https证书,这款https证书企业是可以用的,甚至商城网站、金融网站都可以使用,不限制申请者,个人或者企事业单位都可以申请。DV基础型https证书虽然只是入门级的https证…

OpenHarmony携千行百业创新成果亮相HDC.Together 2023

8月4日-6日,华为开发者大会2023(以下简称“大会”)在中国松山湖举办,OpenAtom OpenHarmony(简称“OpenHarmony”)隆重参会,在大会互动体验区设置了“行业创新展区”,成为大会展区中的…

Debian10:安装PHPVirtualBox

PHPVirtualBox 是一个用 PHP 编写,用于管理 VirtualBox 的 Web 前端(由AJAX实现)。 参考文章:VirtualBoxPHPVirtualBox部署_骡子先生的博客-CSDN博客php virualbox,浏览器远程控制VBox 虚拟机phpVirtualBox_weixin_39815879的博客…

ctypes使用浅谈

什么是ctypes: ctypes 是 Python 的一个标准库,用于与 C 语言进行交互。它提供了一组工具和函数,可以方便地调用动态链接库(DLL)或共享对象(SO)中的 C 函数,并处理 C 数据类型的转换…

探索自动化网页交互的魔力:学习 Selenium 之旅【超详细】

"在当今数字化的世界中,网页自动化已经成为了不可或缺的技能。想象一下,您可以通过编写代码,让浏览器自动执行各种操作,从点击按钮到填写表单,从网页抓取数据到进行自动化测试。学习 Selenium,这一功能…

用普通用户sudo执行ansibe命令

1、编辑/etc/ansible/ansible.cfg 2、hosts文件 3、执行命令 必须加-b选项