JAVA8 新特性

1.行为参数化(Lambda 以及方法引用)

== 传递一个Lambda表达式,即一段精简的代码片段,比如
     apple -> apple.getWeight() > 150
== 传递一个方法引用,该方法引用指向了一个现有的方法,比如这样的代码:
     Apple::isHeavy


2.Stream

   主要用于操作list,具体方法有map,reduce,filter,skip,limit,collect等等

3.CompletableFuture

 执行比较耗时的操作时,尤其是那些依赖一个或多个远程服务的操作,使用异步任务可
以改善程序的性能,加快程序的响应速度。
 你应该尽可能地为客户提供异步API。使用 CompletableFuture 类提供的特性,你能够
轻松地实现这一目标。
 CompletableFuture 类还提供了异常管理的机制,让你有机会抛出/管理异步任务执行
中发生的异常。
 将同步API的调用封装到一个 CompletableFuture 中,你能够以异步的方式使用其结果。
 如果异步任务之间相互独立,或者它们之间某一些的结果是另一些的输入,你可以将这
些异步任务构造或者合并成一个。
 你可以为 CompletableFuture 注册一个回调函数,在 Future 执行完毕或者它们计算的
结果可用时,针对性地执行一些程序。
 你可以决定在什么时候结束程序的运行,是等待由 CompletableFuture 对象构成的列表
中所有的对象都执行完毕,还是只要其中任何一个首先完成就中止程序的运行

4.Optional

 null 引用在历史上被引入到程序设计语言中,目的是为了表示变量值的缺失。
 Java 8中引入了一个新的类 java.util.Optional<T> ,对存在或缺失的变量值进行
建模。
 你可以使用静态工厂方法 Optional.empty 、 Optional.of 以及 Optional.ofNull-
able 创建 Optional 对象。
 Optional 类支持多种方法,比如 map 、 flatMap 、 filter ,它们在概念上与 Stream 类
中对应的方法十分相似。
 使用 Optional 会迫使你更积极地解引用 Optional 对象,以应对变量值缺失的问题,最
终,你能更有效地防止代码中出现不期而至的空指针异常。
 使用 Optional 能帮助你设计更好的API,用户只需要阅读方法签名,就能了解该方法是
否接受一个 Optional 类型的值。

5.默认方法

 Java 8中的接口可以通过默认方法和静态方法提供方法的代码实现。
 默认方法的开头以关键字 default 修饰,方法体与常规的类方法相同。
 向发布的接口添加抽象方法不是源码兼容的。
 默认方法的出现能帮助库的设计者以后向兼容的方式演进API。
 默认方法可以用于创建可选方法和行为的多继承。
 我们有办法解决由于一个类从多个接口中继承了拥有相同函数签名的方法而导致的冲突。
 类或者父类中声明的方法的优先级高于任何默认方法。如果前一条无法解决冲突,那就
选择同函数签名的方法中实现得最具体的那个接口的方法。
 两个默认方法都同样具体时,你需要在类中覆盖该方法,显式地选择使用哪个接口中提
供的默认方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值