java基础---java8后新特性

时间:2023-03-08 18:40:38
java基础---java8后新特性

1. java9 新特性

  • 模块化的使用
    • 减少内存的开销。
    • 可简化各种类库和大型应用的开发和维护。
    • 安全性,可维护性,提高性能。

  在 module-info.java 文件中,我们可以用新的关键词module来声明一个模块,具体如下:

module 模块名称 {
}
  • 钻石操作符:匿名内部类的使用中使用钻石操作符<>,省略类型
  • 集合工厂:List、Set和Map集合中增加了静态工厂方法of实现不可变实例的创建
    • 不可变体现在无法添加、修改和删除它们的元素。
    • 不允许添加null元素对象
    • 保证线程安全:在并发程序中既保证线程安全性,也大大增强了并发时的效率。
    • 被不可信的类库使用时会很安全
    • 如果一个对象不需要支持修改操作,将会节省空间和时间的开销
    • 可以当作一个常量来对待,并且这个对象在以后也不会被改变
  • InputStream的增强:提供了transferTo方法实现将数据直接传输到OutputStream中,用于文件拷贝

2. java10 新特性

  • 垃圾回收机制的增强
  • 局部变量的声明
    • 使用var作为局部变量类型推断标识符,此符号仅适用于局部变量,增强for循环的索引,以及传统for循环的本地变量
    • 不能使用于方法形式参数,构造函数形式参数,方法返回类型,字段,catch形式参数或任何其他类型变量的声明,不能作为类或则接口的名字

3. java11 新特性

  • 一次编译的命令 java
    • 在Java11中可以使用java命令一次性进行编译和运行操作。
    • 执行源文件中的第一个类必须包含主方法。
    • 不可以使用其它源文件中自定义的类
  • String 类新增方法
方法声明 功能介绍
boolean isBlank() 判断字符串是否为空或只包含空白代码点
Optional map(Function<? super T,? extends U>  mapper) 根据参数指定规则的结果来得到Optional类型的对象
T orElse(T other) 若该值存在就返回,否则返回other的数值。