3 月 20 日,Oracle 宣布 Java 10 正式发布。官方已提供下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html 。

在 Java 9 之后,Java 采用了基于时间发布的策略,每 6 个月一个版本。这是采用新的发布策略之后的第一个版本。

Java 10 主要有 12 个新特性。

具体来看看。

JEP 286: Local-Variable Type Inference

局部变量的类型推导。

很多人都会吐槽 Java 代码写起来太过繁琐,特别是涉及泛型的时候。就像 C++,也基于 auto 关键字引入了类型推导功能。

Java 也计划引入类似特性,语法是这样的:

var list = new ArrayList<String>();  // infers ArrayList<String>var stream = list.stream();          // infers Stream<String>

该特性只能用于三种场景:

  • 带有初始化信息的局部变量
  • 增强 for 循环中的索引
  • 传统 for 循环中的局部变量

看个复杂点的例子:

对该特性感兴趣的读者可以参考:https://developer.oracle.com/java/jdk-10-local-variable-type-inference 。
JEP 296: Consolidate the JDK Forest into a Single Repository

将 JDK 的多个代码仓库合并到一个代码仓库中。

看过 JDK 代码的应该知道,JDK 的不同功能分布在不同代码仓库中。以 JDK 9 为例,代码仓库有 8 个: root, corba, hotspot,jaxp, jaxws, jdk, langtools 和 nashorn。其中 hotspot 是虚拟机实现代码,jdk 是 Java 类库和相关工具,langtools 是 javac 等工具,nashorn 是 JavaScript 引擎。

JEP 304: Garbage Collector Interface

垃圾收集器接口。

在 hotspot/gc 代码实现方面,引入一个干净的垃圾收集器接口,改进不同垃圾收集器源代码的隔离性。这样添加新的或者删除旧的 GC,都会更容易。

JEP 307: Parallel Full GC for G1

为 G1 垃圾收集器引入并行 Full GC。

JEP 310: Application Class-Data Sharing

Java 之前就引入了类数据共享机制,Class data sharing (CDS) ,以减少 Java 程序的启动时间,降低内存占用。简单来说,Java 安装程序会把 rt.jar 中的核心类提前转化成内部表示,转储到一个共享的文件中(shared archive)。多个 Java 进程(或者说 JVM 实例)可以共享这部分数据。

现在,希望更近一步,支持应用类的数据共享。

JEP 312: Thread-Local Handshakes

修改安全点机制,使得部分回调操作只需要停掉单个线程,而不像以前那样,只能选择或者停掉所有线程,或者都不停止。

JEP 313: Remove the Native-Header Generation Tool (javah)

去掉 javah 工具。

从  JDK 8 开始,javah 的功能已经集成到了 javac 中。所以,javah 可以删掉了。

JEP 314: Additional Unicode Language-Tag Extensions

额外的 Unicode 语言标签扩展。

增强 java.util.Locale  和相关 API,实现 BCP 47 语言标签中额外的 Unicode 扩展。

JEP 316: Heap Allocation on Alternative Memory Devices

在可选内存设备上分配堆内存。

支持将 Java 对象堆分配到 NV-DIMM 等内存设备上。随着 NV-DIMM 越来越便宜,未来的系统可能会搭载异构内存架构。

JEP 317: Experimental Java-Based JIT Compiler

实验性的基于 Java 的 JIT 编译器。

支持基于 Java 的 JIT 编译器。相关工作主要基于 Graal。Graal 也是 Java 9 中引入的 AOT 编译器的基础。

JEP 319: Root Certificates

根证书。

在 JDK 中提供一组默认的根证书。

JEP 322: Time-Based Release Versioning

基于时间的版本字符串。修改 Java SE 平台和 JDK 版本字符串机制。考虑和之前版本号的兼容等问题,新的版本命名机制是:

$FEATURE.$INTERIM.$UPDATE.$PATCH
$FEATURE,每次版本发布加 1,不考虑具体的版本内容。(之前的主版本号部分)2018 年 3 月的版本是 JDK 10,9 月的版本是 JDK 11,依此类推。
$INTERIM,中间版本号,在大版本中间发布的,包含问题修复和增强的版本,不会引入非兼容性修改。
马上下载尝试吧!

3月20日, Java 10 正式发布了!相关推荐

  1. 斗罗大陆服务器维护,《斗罗大陆武魂觉醒》5月20日停服维护公告

    亲爱的维序者: 为了给各位维序者更好的游戏体验,我们将预计于5月20日上午10:00对全服进行停服更新维护,维护期间,斗罗大陆将暂时无法进入.维护结束后,维序者将在邮件中收到小舞的停服维护小心意~ 维 ...

  2. 香港城大计算机学院xutaowei,2018年3月20日学术报告(徐宏,香港城市大学)

    报告题目:Network Stack as a Service 报告日期及时间:2018年3月20日上午10:00 报告地点:      计算机学院B403 报告人:        Dr. Hong ...

  3. 新斗罗大陆手游服务器维护,《新斗罗大陆》1月20日合服公告

    标签: 海神 <新斗罗大陆>1月20日合服公告 亲爱的魂师大人,为了给大家带来更好的游戏体验,同时也为了响应广大玩家的建议,我们决定将于2021年1月20日(周三)10:30-18:30, ...

  4. 新斗罗大陆手游服务器维护,《新斗罗大陆》4月20日合服公告

    标签: 海神 亲爱的魂师大人,为了给大家带来更好的游戏体验,同时也为了响应广大玩家的建议,我们决定将于2021年4月20日(周二)10:30-18:30,对以下服进行合服处理.合服期间服务器将暂时关闭 ...

  5. 大天使之剑服务器维护,大天使之剑————【维护】10月20日更新维护公告

    亲爱的玩家: 大家好! 7k7k<大天使之剑>将于10月20日10:00-16:00对所有服务器进行例行维护,届时大家将出现无法登陆等现象,预计维护需要6小时. 如果在停机维护期间无法完成 ...

  6. 2017年含金量最高的机器学习技能或知识有哪些? 翻译 2017年10月20日 14:22:44 标签: 机器学习 / quora 7504 原文:As of 2017, what set of

    2017年含金量最高的机器学习技能或知识有哪些? 翻译 2017年10月20日 14:22:44 标签: 机器学习 / quora / 7504

  7. 联想小新/YOGA新品发布会官宣:定档10月20日

    10月11日消息,据联想小新笔记本官微消息,联想消费"好多"产品秋季发布会正式官宣,定档10月20日. 据悉,本次联想发布会将发布一大批11代酷睿轻薄本,包括小新.YOGA系列笔记 ...

  8. 【10月20日】CCF HPC China 2021中国高性能计算学术年会

    ​[10月20日]"CCF HPC China 2021中国高性能计算学术年会"作为年度规模最大.规格最高的超算盛会,今年攒了一个"大局". CCF HPC C ...

  9. 【历史上的今天】10 月 20 日:微软黑屏事件;Ubuntu Linux 操作系统发布;Apple Pay 正式上线

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 20 日,在 1909 年的今天,Antoni Kilinski 诞生,他是计算机科学课程 ...

最新文章

  1. IBM首家发布了公有云中的裸机Kubernetes
  2. Node.js基金会官方的开发者认证准备就绪
  3. 使用Chrome工具来分析页面的绘制状态
  4. 信息系统项目管理师:第1章:信息化与信息系统-重点汇总
  5. Good Technology 产品特色
  6. Java的技术采⽤用⽣生命周期
  7. 我的第一个python web开发框架(15)——公司介绍编辑功能
  8. 马斯克:我是Rust粉丝,但我选择C
  9. C#时间的味道——任时光匆匆我只在乎你
  10. 数电实验1:五输入表决器
  11. Android Studio实现计算器功能
  12. Python 断言的使用
  13. 分区表丢失修复与系统启动修复
  14. oracle autovue是什么软件,AutoVue
  15. Python学习笔记——工欲善其事,必先利其器
  16. 企业邮箱是什么?企业邮箱和个人邮箱的区别在哪里
  17. 电脑文件夹的展示方式
  18. 作为程序员面试官的3点建议
  19. KO88冲销内部订单结算的操作参考
  20. 借助gdb调试glibc代码学习House of Orange

热门文章

  1. 太强了! 李宏毅:1 天搞懂深度学习,我总结了 300 页 PPT
  2. 首发:李航老师的《统计学习方法》第二版的代码实现(Github标星过万!)
  3. Tensorflow2.0 + Transformers 实现Bert FGM对抗训练惩罚梯度损失函数
  4. 阿里云对象存储OSS之通过URL形式进行图片处理
  5. [Office 2010 易宝典]怎样直接将Office文档保存为PDF格式?
  6. Linux系统Logrotate服务介绍
  7. 如何成为一名数据科学家?(二)
  8. Solr5.3.1通过copyField设置多个field(字段)同时检索
  9. xenapp5 负载均衡配置
  10. 单林多域群集环境中将Exchange 2003迁移到Exchange 2010之二