Java9新特性

模块化引入 Java的REPL工具jshell

可以在命令行直接写代码。运行

接口的私有方法

接口中可以定义私有方法供自己使用

钻石操作符升级

钻石操作符<>在8中不能和匿名实现类一起使用即类型推断不生效

try操作的升级

  1. 在8中就可以将待关闭的资源写到try(资源引用=资源定义)中,会自动关闭
  2. 在9之后,try(资源引用1;资源引用2)可以提前定义,只放引用

    String存储结构的变更

  3. 9之后string的char[]改成byte[]

  4. stringBuffer和Stringbuilder也进行了改变

    集合工厂方法:快速创建只读集合

List.of(1,2,3,4,5)

inputStream的加强

inputStream.tranferTo()转换为OutputStream

增强的Stream API新加了几个方法

  1. takeWhile(perdicate)返回第一个不满足之前的元素
  2. dropWhule(perdicate)和上面一个相反
  3. Stream.ofNullable(null),可以只放一个null,of()不行,可以包含,但不能只有一个null
  4. iterate原来只是循环,现在加了一个predicate判定条件,

    optinonal提供了stream方法 javaScript引擎更新Nashorn