JDK 8.0新特性

本文深入探讨了Java 8的Lambda表达式,介绍了其使用条件和优势,如简化代码和提高可读性。同时,文章详细讲解了Stream API如何通过流式操作解决多重循环问题,提升效率。重点讨论了@FunctionalInterface注解的作用以及接口与抽象类的区别。此外,还提到了Java 8中接口的增强,包括默认方法和静态方法的引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Optional

2、lanmda

条件:

1.方法的参数局部变量类型必须为接口!!!,才能使用Lambda

2.接口中有且仅有一个抽象方法

   针对一个接口中,是否有大于一个抽象方法?JDK8为我们新增了一个注解:@FunctionalInterface。它能够帮助我们检测这个接口是不是只有一个抽象方法,如果有两个抽象方法,则会报错。

3、接口和抽象类、抽象防范

接口: interface修饰,只能定义抽象方法和①静态常量 ,子类可以同时实现多个接口。并且实现全部的抽象方法。

jdk1.8后增强 ①静态常量   ②抽象方法   ③默认方法    ④静态方法

抽象类: abstract 定义的类,里面可以存在抽象方法 也可以定义非抽象方法,可以不能被实例化       子类继承抽象类后必须实现所有的抽象方法。子类可以直接调用抽象类中的非抽象方法

抽象方法:没有实现的方法称为抽象方法,用abstract 修饰 抽象方法只能定义在接口或者抽象类中。

4、接口增强

jdk1.8后增强 ①静态常量   ②抽象方法   ③默认方法    ④静态方法

5、Stream

 JDK8之前,(示例中一次for循环除外)当我们面对一个集合多次 for循环的问题,则需要多次遍历集合来完成操作。针对这个问题,JDK8中引入了 Stream 流式操作,便能够解决多次 for 循环的弊端。

Collectors.toList()用来结束Stream流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值