jdk1.8新特性

3.1.特殊的接口

类的二个要素是什么? 属性和方法
属性三要素: (修饰符)类型,名字,值
方法五要素: 修饰符,返回值,方法名,形参,方法体
构造方法: 是一个特殊的方法;
抽象方法: 是一个特殊的方法

抽象类是一个特殊的类
		接口是一个特殊的抽象类
		接口中的方法全部是抽象的
		接口中的属性全部是public static final

Jdk1.8:新特性:
在接口中的方法可以有方法体

3.2.lambda表达式

是被python,scala逼出来的;语法超级简洁

匿名类:
目标方法的参数得是一个接口;
方法的参数里面直接new后面跟上接口名
必须马上写类体,重写方法体

lambda表达式的先决条件
目标方法的参数是一个接口
接口中只有一个抽象方法,这个抽象方法不是Object里面的方法
接口最好顶一个注解:@FunctionalInterface

lambda如何写开发:
把接口中抽象的方法复制一份到代码中(一定要加注释)

接口中唯一的抽象方法

  • public abstract void run();

  • 最全的写法:它是唯一的抽象方法的简写

  • (方法的形参) -> {方法体,如果有返回值,一定要写返回值}

最全的省略:
如果目标方法只有一个参数,可以省略小括号
小括号里面的形参:类型可以省略
如果方法体只有一行,大括号可以省略

常见的lambda表达式接口
所有的lambda表达式常见的工具类都在java.util.function

接口名抽象方法含义
Consumervoid accept(T t);消费者
SupplierT get();供应商,它是把这里面的数据,直接返回了
Function<T, R>R apply(T t);方法(函数);第一个泛型是输入参数,第二个泛型是输出结果; 如何把第一个输入参数变成输出结果,这个是apply这个方法要实现的功能
Predicateboolean test(T t);断言:泛型是输入数据;过滤:如果返回值是true,则在容器中保留,否则删除
3.3.数据流编程–**********

数据: 容器;

  • 放的是什么(泛型)
  • 大小
  • Crud

需求:List里面存储的数据超级大;

  • 找10个及格的分数;
  • 循环之中满足需求,break;
  • 容器的大小,无上限;

重要的接口:

接口名含义
Stream

Stream接口的方法可以归为两类(算子就是方法)
方法的返回值还是Stream:(Transformaction算子)
方法的返回值不是Stream:(action算子)

数据流:
一根管子,一个数据会把所有的管子走完以后,再走第二个数据;
而不是所有的数据走完第一个管子以后,再一块走第二个管子

重点
所有的transformaction算子都是懒惰的;必须碰到action算子,才会一块执行;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值