JDK新特性

Jdk9新特性

1.模块化系统

        模块化系统是java9最大的特性,相较于之前的java8,运行一个模块其他模块也会跟着运行,jdk9可以减少他们之间的依赖,可导出一个公共的api,隐藏其中实现的细节,然后让需要的模块导入即可用。可极大打得减少内存的开销。

2.Jshell和Jlink

        Jshell是java9新增的交互式java编程环境,他允许开发者在命令界面中快速编写和测试java代码。Jlink是Java9中新增的工具,用于生成自定义的java运行是镜像,可以包含或排除特定模块。

3.不可变集合类工厂方法

        java9新增的一些方法也就是of(),他们可更方便快速的创建不可变的集合

4.接口中的私有方法

        Jdk8中接口可以有静态方法和默认方法,jdk9中新增了私有方法,这些私有方法只能在接口中被访问,在外部无法被访问到。

5.try-with-resources改进

        jdk8中,要实现资源的自动关闭,需要执行后必须关闭的资源在try子句中初始化,否者编译不通过。jdk9中则可以在try中直接放入初始化后的对象,而且放入的对象是final的不可再被赋值。

6.String结构变更

        jdk8使用的是将字符串存储在char数组中,jdk9将字符串存储在byte数组中,节约空间。

7.inputStream增强

        在jdk8中要想把 数据写到另一个文件中,只能边读边写,jdk9提供了一个transferTo方法。可以将数据直接传输到OutputStream。

8.StreamAPI增强

  • Java 的 Steam API 是java标准库最好的改进之一,让开发者能够快速运算,从而能够有效的利用数据并行计算。Java 8 提供的 Steam 能够利用多核架构实现声明式的数据处理。

  • 在 Java 9 中,Stream API 变得更好,Stream 接口中添加了 4 个新的方法:takeWhile, dropWhile, ofNullable,还有个 iterate 方法的新重载方法,可以让你提供一个 Predicate (判断条件)来指定什么时候结束迭代。

  • 除了对 Stream 本身的扩展,Optional 和 Stream 之间的结合也得到了改进。现在可以通过 Optional 的新方法 stream() 将一个 Optional 对象转换为一个(可能是空的) Stream 对象。

JDK10新特性

1.局部变量类型推断

可以不用指定变量或者方法的返回值类型。用var接收会自己推断。但是不适用于初始值为null,方法引用,Lambda表达式和为数组静态初始化。

2.新增不可变集合方法

jdk10新增了一个copyof方法,用来创建不可变的集合,不能进行添加、删除、替换、排序等操作,不然会报 java.lang.UnsupportedOperationException 异常。

JDK11新特性

增加了ZGC垃圾回收器。

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

JDK14新特性

给空指针异常直接指出是什么位置报的异常,便于程序员处理。

JDK15新特性

提供了text blocks 功能 解决了字符串换行问题。

JDK16新特性

解决switch语句的一些不规则性障碍

  • 比如case标签之间的默认控制行为

  • case块中的默认范围

  • 无意义的break语句。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值