前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 11 新特性解读(1)

Java 11 新特性解读(1)

作者头像
一个风轻云淡
发布2023-10-15 10:23:36
发布2023-10-15 10:23:36
35700
代码可运行
举报
文章被收录于专栏:java学习javajava学习java
运行总次数:0
代码可运行

前言

北京时间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 特性增强提议) 

代码语言:javascript
代码运行次数:0
运行
复制
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中加入了这样的语法。

代码语言:javascript
代码运行次数:0
运行
复制
//错误的形式: 必须要有类型, 可以加上var

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

//正确的形式:

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

Consumer con2 = (@Deprecated var t) ->System.out.println(t.toUpperCase());
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 新增了一系列字符串处理方法
  • Optional 加强 
  •  局部变量类型推断升级
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档