Java 8:让你的代码更简洁、高效和灵活的新特性

Java 8 ——企业中使用最普遍的版本,那么了解它的新特性是非常有必要的

目录

一、函数式接口

二、Lamdba表达式

三、方法引用

四、Stream API

3.1 创建

方法一:通过集合

方法二:通过数组

方法三:通过Stream的of()

方法四:创建无限流

3.2中间操作

1.筛选与切片

2.映射

3.排序

3.3终止操作

1.匹配与查找

2.归约

3.收集 

五、LocalDatetime

六、Optional类

七、接口中定义默认方法

八、Nashorn JavaScript 引擎


一、函数式接口

只有一个方法的接口,通常用@FunctionalInterface注解标识。

二、Lamdba表达式

对匿名内部类的替代,代码更简洁,只适用于函数式接口。

 Runnable runnable = new Runnable(){
            @Override
            public void run() {
                System.out.println("调用");
            }
        };
        Runnable runnable1 = ()->{System.out.println("调用");};

三、方法引用

方法引用是一种简化 Lambda 表达式的写法,它不带任何参数,可以通过方法的名字来引用一个已有的方法或构造器。

方法引用的语法格式是 :

  • 类名::方法名

  • 对象名::方法名

例如 String::length 表示一个获取字符串长度的函数,System.out::println 表示一个输出内容到控制台的消费者。

四、Stream API

Stream API对数组或者集合中的数据进行操作。 对于MySql,Oracle等可以用SQL语句处理,对于MongDB,Radis等NoSQL的数据需要java层面去处理,其中之一便有Stream API。

Java 8:让你的代码更简洁、高效和灵活的新特性_第1张图片

注意:

  • Stream自己不会存储元素,是用来对集合进行相关计算

  • Stream不会改变源对象,相反,他们会返回一个持有结果的新的Stream

  • Stream操作是延迟进行的,他们会等到需要结果的时候才执行

Java 8:让你的代码更简洁、高效和灵活的新特性_第2张图片

4.1 创建

方法一:通过集合

List<对象> a = new Arrylist<>();
//返回一个顺序流
Stream<对象> stream = a.stream;
//返回一个并行流
Stream<对象> parallelStream = a.parallelStream();

方法二:通过数组

int[] arr = new int[]{对象1,对象2,对象3};
IntStream stream =  Arrays.stream(arr);

方法三:通过Stream的of()

Stream stream = Stream.of(1,2,3);

方法四:创建无限流

//取前十个偶数
Stream.iterate(0,t->t+2).limit(10).forEach(System.out::println);

4.2中间操作

注意:一旦执行了中止操作,原来的stream无法再使用,需要再次创建!

1.筛选与切片

Java 8:让你的代码更简洁、高效和灵活的新特性_第3张图片

2.映射

Java 8:让你的代码更简洁、高效和灵活的新特性_第4张图片

3.排序

Java 8:让你的代码更简洁、高效和灵活的新特性_第5张图片

4.3终止操作

1.匹配与查找

Java 8:让你的代码更简洁、高效和灵活的新特性_第6张图片

2.归约

 Java 8:让你的代码更简洁、高效和灵活的新特性_第7张图片

3.收集 

 

五、LocalDatetime

LocalDate、LocalTime、LocalDateTime(第三代日期) 

 Java 8:让你的代码更简洁、高效和灵活的新特性_第8张图片

六、Optional类

用来判断空指针,避免空指针异常问题

Java 8:让你的代码更简洁、高效和灵活的新特性_第9张图片

七、接口中定义默认方法

接口中可以编写方法,用default修饰。

八、Nashorn JavaScript 引擎

Nashorn JavaScript 引擎:Java 8 提供了一个新的 Nashorn JavaScript 引擎,它可以让开发者在 JVM 上运行特定的 JavaScript 应用。Nashorn JavaScript 引擎使用了新的语法解析器和编译器,比旧版的 Rhino 引擎更加高效和快速。

你可能感兴趣的:(Java,java,开发语言)