原标题:Java 11 正式发布!8年免费使用!

根据Oracle新出台的每6个月发布一次Java SE的节奏,美国时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可供生产环境中使用,这是自Java8后的首个长期支持版本,深得大家关注。

●其下载地址如下:

https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

Java 11 版本说明

按照 Oracle 公布的支持路线图,Java 11 将会获得 Oracle 提供的长期支持服务,直至2026年9月。

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

▲Oracle 公布的未来 Java 版本发布和支持周期图

Java 11 亮点关注

虽然6个月前才发布了Java10,但这也并不意味着Java11的亮点不足以吸引大家眼球。

官网公开的 Java11 共有以下 17 项更新:

●181:Nest-Based Access Control(基于嵌套的访问控制)

●309:Dynamic Class-File Constants

(动态类文件常量)

●315: Improve Aarch64 Intrinsics

(改进 Aarch64 内部函数)

●318:Epsilon: A No-Op Garbage Collector(Epsilon:No-Op 垃圾收集器)

●320:Remove the Java EE and CORBA Modules(删除 Java EE 和 CORBA 模块)

●321:HTTP Client (Standard)(HTTP 客户端)

●323:Local-Variable Syntax for Lambda Parameters(Lambda 参数的变量语法)

●324:Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法实现的密钥协议)

●327:Unicode 10

●328:Flight Recorder(飞行记录器)

●329:ChaCha20 and Poly1305 Cryptographic Algorithms(ChaCha20 和 Poly1305 加密算法)

●330:Launch Single-File Source-Code Programs(启动单文件源代码程序)

●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 Java Engine(弃用 Rhino Java 引擎)

●336:Deprecate the Pack200 Tools and API(弃用 Pack200 工具和 API)

简单介绍几个比较重要的新特性:

●ZGC:可扩展的低延迟垃圾收集器

ZGC是一款号称可以保证每次GC的停顿时间不超过10MS的垃圾回收器,并且和当前的默认垃圾回收起G1相比,吞吐量下降不超过15%。

●Epsilon:什么事也不做的垃圾回收器

Java 11还加入了一个比较特殊的垃圾回收器——Epsilon,该垃圾收集器被称为“no-op”收集器,将处理内存分配而不实施任何实际的内存回收机制。 也就是说,这是一款不做垃圾回收的垃圾回收器。这个垃圾回收器看起来并没什么用,主要可以用来进行性能测试、内存压力测试等,Epsilon GC可以作为度量其他垃圾回收器性能的对照组。

●增强var用法

Java 10中增加了本地变量类型推断的特性,可以使用var来定义局部变量。

从 Java 10 开始,可以使用关键字 var 声明局部变量,如下所示:

// Funktioniert seit Java 10

varzahl = 5; // int

varstring= "Hello World"; // String

varobjekt = BigDecimal.ONE; // BigDecimal

尽管这一特性被很多人诟病,但是并不影响Java继续增强他的用法,在Java 11中,var可以用来作为Lambda表达式的局部变量声明。乍一看,这一举措似乎有点多余,因为在写代码过程中可以省略 lambda 参数的类型,并通过类型推断确定它们。但是,扩展名对于使用 @Nonnull 和 @Nullable 等类型注释很有用。

//Inference von Lambda-Parametern

Consumer printer = (var s)->System.out.println(s); //statt s -> System.out.println(s);

//aber keine Mischung von "var"und deklarierten Typen möglich

//BiConsumer printer = (var s1, String s2)->System.out.println(s1 + " "+ s2);

//Nützlich für Type Annotations

BiConsumer printer = (@Nonnull var s1, @Nullable var s2)->System.out.println(s1 + (s2 == null? "": " "+ s2));

●移除Java EE和CORBA模块

早在发布Java SE 9的时候,Java就表示过,会在未来版本中将Java EE和CORBA模块移除,而这样举动终于在Java 11中实施。终于去除了Java EE和CORBA模块。

●HTTP客户端进一步升级

JDK 9 中就已对 HTTP Client API 进行标准化,然后通过JEP 110,在 JDK 10 中进行了更新。在本次的Java 11的更新列表中,由以JEP 321进行进一步升级。

该API通过CompleteableFutures提供非阻塞请求和响应语义,可以联合使用以触发相应的动作。 JDK 11完全重写了该功能。现在,在用户层请求发布者和响应发布者与底层套接字之间追踪数据流更容易了,这降低了复杂性,并最大程度上提高了HTTP / 1和HTTP / 2之间的重用的可能性。

●启动单文件源代码程序

如今单文件程序在编写小实用程序时很常见,特别是脚本语言领域。从中开发者可以省去用 Java 编译程序等不必要工作,以及减少新手的入门障碍。在基于 Java 10 的程序中可以通过三种方式启动:

●作为* .class文件

●作为* .jar文件中的主类

●作为模块中的主类

现在,Java 11 中可以在源代码文件中声明类:

# java HelloWorld.java

// statt

# javac HelloWorld.java

# java -cp . hello.World

在 Unix 操作系统上,Java 文件甚至可以直接作为 Shebang 文件执行:

#!/path/to/java --sourceversion

# ./HelloWorld.java

其他值得注意的变化包括支持 Unicode 10 标准以及将 Profiler Flight Recorder 集成到 OpenJDK 中(之前仅适用于 Oracle JDK)。Flight Recorder 的目标是尽可能高效地记录应用程序数据,以便在出现问题时分析 Java 应用程序和 JVM。

API的变化

此外,Java 类库也有不少小的改动。 特别是字符串:

| Welcome to JShell -- Version 11

| For an introduction type: /help intro

// Unicode zu String

jshell> Character.toString( 100)

$ 1==> "d"

jshell> Character.toString( 66)

$ 2==> "B"

// Zeichen mit Faktor multiplizieren

jshell> "-".repeat( 20)

$ 3==> "--------------------"

// Enthält ein Text keine Zeichen (höchstens Leerzeichen)?

jshell> Stringmsg = "hello"

msg ==> "hello"

jshell> msg.isBlank()

$ 5==> false

jshell> Stringmsg = " "

msg ==> " "

jshell> msg.isBlank()

$ 7==> true

// Abschneiden von führenden oder nachgelagerten Leerzeichen

jshell> " hello world ".strip()

$ 8==> "hello world"

jshell> "hello world ".strip()

$ 9==> "hello world"

jshell> "hello world ".stripTrailing()

$ 10==> "hello world"

jshell> " hello world ".stripLeading()

$ 11==> "hello world "

jshell> " ".strip()

$ 12==> ""

// Texte zeilenweise verarbeiten

jshell> Stringcontent = "this is a multiline contentnMostly obtained from some filerwhich we will break into linesrnusing the new api"

content ==> "this is a multiline contentnMostly obtained fro ... inesrnusing the new api"

jshell> content.lines().forEach(System.out::println)

thisisa multiline content

Mostly obtained from some file

which we will breakinto lines

using the newapi

Java 11 是否值得更新

今年4月,Oracle 发布官方声明表示即将停止对 Java 8 的正常支持(免费更新):

2019 年 1 月之后,Oracle 将不会在其网站上发布 Java SE 8 商业使用的进一步更新下载。如需持续获取安全的 Bug 修复和安全补丁以及 Java SE 8 或以前版本的稳定性支持,可以通过 Oracle Java SE 高级版、Oracle Java SE 高级桌面、或 Oracle Java SE 套件。

这意味着,在 2019 年 1 月之后,开发者想要使用老版本只能付费了,从中也侧面看出,Oracle 在间接性鼓励用户主动升级。不过,据各种对 Java 用户调查如 Jaxenter 发现,大多数的开发者依旧停留在 Java 8 以内的版本。

其实,这也不足为怪,当开发者刚开始吐槽新版本带来的问题时,Java 已搭载上了火箭更新到了下一版本,让大家措手不及。

那么对于 Java 11 是否值得立即更新使用?按照 Oracle 公布支持的路线图来看,如文章开头所述,Java 11 将会获得 Oracle 长期的服务支持,直至 2026 年 9 月。相比 Java 9 和 10 这两个仅提供半年技术支持的版本来说,Java11 的发布无疑对个人开发者以及企业都是一件好事。

那么问题来了,你到底要不要更新呢?

【434班开班】年轻就是要冲破桎梏,敢想敢拼!

工具推荐

每个 Java 开发者应该知道(并爱上)的8大工具,你用过几个?

甜蜜中秋

月圆饼甜情意浓,全体在校生收到了来自母校的浓浓中秋祝福~返回搜狐,查看更多

责任编辑:

java 11_Java 11 正式发布!8年免费使用!相关推荐

  1. java 11_JAVA 11初体验

    JAVA 11初体验 随着JAVA没半年发布一次新版本,前几天JAVA 11隆重登场.在JAVA 11中,增加了一些新的特性和api, 同时也删除了一些特性和api,还有一些性能和垃圾回收的改进. 作 ...

  2. java11开源中国,Java 11 正式发布!

    作者:OSC-局长 来自:开源社区(oschina2013) 如需转载请在文中注明来源和作者 美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环 ...

  3. Java 11 正式发布,新特性解读

    Java 11 正式发布,新特性解读 杨晓峰   2018 年 9 月 26 日 话题:Java语言 & 开发 不知不觉 JDK 11 已经发布了,从 9 开始,JDK 进入了让人学不动的更新 ...

  4. Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

    美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Java 8 扩 ...

  5. 微软Windows 11正式发布!一文带你了解免费升级方法、最低系统要求

    如此前Windows 11 预览版来了!预告,微软官方宣布,Windows 11正式版于今日(10月5日)全面上市. 01 微软Windows 11正式发布 Windows 11现在已经正式可以下载了 ...

  6. Windows 11正式发布,所有用户均可免费升级,还支持安卓应用

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/  微思专业IT 认证培训19周年(思科.华为.红帽.oracle.VMware.CISP.PMP等认证 ...

  7. JAVA10和11什么时候_Java 11 正式发布 支持期限至2026年9月

    原标题:Java 11 正式发布 支持期限至2026年9月 美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布!这是自 Java 8 后的首个长期支持版本, ...

  8. java求职攻略_2020年求职攻略 《Java面试连成诀》教程免费分享

    原标题:2020年求职攻略 <Java面试连成诀>教程免费分享 IT行业薪资高.就业好.发展前景广阔,而面试是我们打开事业大门的第一关.技术的革新以及IT从业者增多加大了市场竞争,面试中问 ...

  9. 微软Windows 11正式发布!(附安装教程)

    如此前预告,微软官方宣布,Windows 11正式版于今日(10月5日)全面上市. Windows 11现在已经正式可以下载了.虽然微软之前宣布将于10月5日在全球范围内推出搭载Windows 11的 ...

最新文章

  1. jsp ajax动态添加数据,jquery Ajax实现Select动态添加数据
  2. WinWordControl控件的使用注意
  3. 关于SQL 数据库表中的聚集索引和非聚集索引等
  4. JavaScript强化教程——AJAX
  5. 米聊PK微信:微信是一朵奇葩
  6. 可视化caffe模型结构及在线可视化
  7. ecshop根目录调用_ECSHOP各文件夹功能说明
  8. 卓越领导者的智慧(精华版)
  9. Winform 中tabcontrol 美化
  10. socket编程—— 服务器遇到Broken Pipe崩溃
  11. Linux搭建Nacos及Nacos集群
  12. item_search_img - 拍立淘搜索淘宝商品(淘宝API)
  13. 什么是mysql的安装版本的_一:MySQL基本介绍及安装
  14. 舰队collection服务器维护,舰娘百科 - 专业性的舰队Collection百科全书
  15. CentOS7下载安装nginx
  16. 对捕金猎人的买涨买跌交易感悟?(交易基础篇)
  17. 使用Markdown输出LaTex数学公式
  18. 行车记录仪总显示SD卡已满?看看是怎么回事
  19. 用计算机模拟掷骰子实验,实验一古典概型及其模拟(6页)-原创力文档
  20. 将区块链带到第三世界:分布式电商BitCherry的格局与野心

热门文章

  1. 【Kafka】Kafka 镜像 Kafka mirroring (MirrorMaker)
  2. 【Elasticsearch】elasticsearch shard 分片
  3. 【jvm】jvm jstack使用 Java线程Dump分析
  4. 【elasticsearch】ES数据库重建索引 -- Reindex(数据迁移)
  5. 【Kafka】Kafka如何彻底删除Kafka中的topic
  6. 【Kafka】Kafka SCRAM认证 ERROR [ZooKeeperClient] Auth failed
  7. Spark Structured Kudu : RejectedExecutionException: Worker has already been shutdown
  8. 95-241-100-源码-Flink语义-Flink的exectly-once系列之两阶段提交概述
  9. 【Antlr】Antlr API 简介
  10. Dubbo :广播模式下Can't assign requested address问题