JDK10新特性-你了解多少

  1. 局部变量类型推断

局部变量类型推断是Java 10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步。

var sts=new ArrayList();
新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。
局部变量类型推断将引入”var”关键字,也就是你可以随意定义变量而不必指定变量的类型
var num1=10;
var num2=true;
虽然类型推断在Java中不是一个新概念,但在局部变量中确是很大的一个改进。
说到类型推断,从JDK 5引进泛型,到JDK 7的”<>”操作符允许不绑定类型而初始化List,再到JDK 8的Lambda表达式,再到现在JDK 10的局部变量类型推断,Java类型推断正大刀阔斧的向前发展。

局部变量类型推荐仅限于如下使用场景:
局部变量初始化
for循环内部索引变量
传统的for循环声明变量
Java官方表示,它不能用于以下几个地方:
方法参数
构造函数参数
方法返回类型
字段
捕获表达式(或任何其他类型的变量声明)
2. GC改进和内存管理
JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。
第一个垃圾收集器接口是(JEP 304),它将引入一个纯净的垃圾收集器接口,以帮助改进不同垃圾收集器的源代码隔离。
预定用于Java 10的第二个JEP是针对G1的并行完全GC(JEP 307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC,并且此JEP的目标是使G1平行。

  1. 线程本地握手(JEP 312)
    JDK 10将引入一种在线程上执行回调的新方法,因此这将会很方便能停止单个线程而不是停止全部线程或者一个都不停。

  2. 备用内存设备上的堆分配(JEP 316)
    允许HotSpot VM在备用内存设备上分配Java对象堆内存,该内存设备将由用户指定。

  3. 其他Unicode语言 - 标记扩展(JEP 314)
    目标是增强java.util.Locale及其相关的API,以便实现语言标记语法的其他Unicode扩展(BCP 47)。

  4. 基于Java的实验性JIT编译器
    Oracle希望将其Java JIT编译器Graal用作Linux / x64平台上的实验性JIT编译器。

  5. 根证书(JEP 319)
    这个的目标是在Oracle的Java SE中开源根证书。

  6. 根证书颁发认证
    这将使OpenJDK对开发人员更具吸引力,它还旨在减少OpenJDK和Oracle JDK构建之间的差异。

  7. 将JDK生态整合单个存储库(JEP 296)
    此JEP的主要目标是执行一些内存管理,并将JDK生态的众多存储库组合到一个存储库中。

  8. 删除工具javah(JEP 313)
    从JDK中移除了javah工具,这个很简单并且很重要。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值