java8新特性 梳理

  1. lambda表达式的出现,简单来看是为了简化匿名内部类繁琐的代码,而匿名内部类的结构是:有个接口,接口中有个方法,通过匿名内部类的方式实现该方法,至此匿名内部类完成。匿名内部类本身的目的也是简化代码,如果不用匿名内部类,你需要新建个一个类,然后去实现这个接口,再实现方法,这样更加繁琐。
  2. 基于此java8新增了lambda表达式,可以简化匿名内部类实现方式的繁琐,但是它的作用和匿名内部类是一样的,创建一个接口的实例而已。其实lambda表达式只是创建接口实例方式的其中一种,还有方法引用和构造方法引用,其实构造方法引用也是方法引用之一,故方法引用有4种。
  3. 函数式接口实例的生成方式及定义 定义:果一个接口中,有且只有一个抽象的方法(Object类中的方法不包括在内),那这个接口就可以被看做是函数式接口。
    3.1 lambda表达式语法:(参数)->{函数体},基于很多情况可以省略一些部分。只要lambda表达式符合该接口中抽象方法的规则即可,有没有接收参数,有没有返回值。
    3.2 方法引用,这里的方法引用有静态方法引用和成员方法引用。(1).静态方法引用:类名::方法名,(2).成员方法引用:对象::方法名,(3).类名::实例方法名。此方法也得符合该接口中的抽象方法的规则,有没有接收参数,有没有返回值。
    3.3 构造方法引用,语法:类名::new,构造方法引用同样符合规则即可。
  4. 这里是java8 已经提供的比较重要的函数式接口,列举一下 不细说。Function、Supplier、Predicate、Consumer,还有其他的。
  5. stream 流
    Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值