栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jdk8新特性小总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jdk8新特性小总结

jdk8新特性 lambda表达式

Lambda 是一个匿名函数,可以把 Lambda 表达式理解为是一段可以传递的代码

Lambda 表达式的本质:作为函数式接口的实例

lambda左边 就是接口里面抽象方法的参数。

lambda右边 就是对接口抽象方法体的重写。

参数类型给定到泛型上

Lamdba若只需要一个参数时,小括号可以省略

当Lamdba体只有一条语句时,return和大括号若有,都可以省略

 		Comparator comparator = new Comparator() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return Integer.compare(o1, o2);
            }
        };
        System.out.println(comparator.compare(1, 2));

        //lambda写法
        Comparator c = (o1, o2) -> {
            return 0;
        };
        Comparator c2 = (o1, o2) ->  o1-o2;
函数式接口

只包含一个抽象方法的接口,称为函数式接口。接口上用@FunctionalInterface标识

四大核心函数式接口

方法的引用

方法引用可以看做是 Lambda 表达式深层次的表达。换句话说,方法引用就是 Lambda 表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法。

类(或对象) :: 方法名

要求接口中的抽象方法的 形参列表 和 返回值类型 与方法引用的方法的形参列表和返回值类型相同!

//Consumer void accept(T t)
//PrintStream  void println(T t)
PrintStream ps=System.out;
Consumer con1= ps :: println;
  • 情况1 对象 :: 非静态方法
  • 情况2 类 :: 静态方法
  • 情况3 类 :: 非静态方法

当函数式接口方法的第一个参数是需要引用方法的调用者,并且第二个参数是需要引用方法的参数(或无参数)时:ClassName::methodName(针对于情况3)

构造器和数组的引用

方法引用:类名 ::new 和方法引用类似,函数式接口的抽象方法的形参列表和构造器的形参列表一致。抽象方法的返回值类型即为构造器所属的类的类型

数组引用:数组类型 [] :: new 可以把数组看做是一个特殊的类,则写法与构造器引用一致。

StreamAPI
  • Stream 关注的是对数据的运算,与 CPU 打交道;集合关注的是数据的存储,与内存打交道;
  • Java 8 提供了一套 api ,使用这套 api 可以对内存中的数据进行过滤、排序、映射、归约等操作。类似于 sql 对数据库中表的相关操作。
  • Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合讲的是数据, Stream讲的是计算!”

创建方法

  1. 通过集合
  2. 通过数组
  3. Stream.of()方法
中间操作

筛选与切片

映射

排序

终止操作

匹配雨查找

归约

收集

Optional 类的使用

为了解决 java 中的空指针问题而生!

Optional 类(java.util.Optional) 是一个容器类,它可以保存类型 T 的值,代表这个值存在。或者仅仅保存 null,表示这个值不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。

常用方法

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号