java8新特性介绍

本文介绍了Java 8的四大新特性:接口的默认方法、静态方法,深入探讨函数式接口的概念、API及@FunctionalInterface注解,以及Lambda表达式的语法和作用域规则。通过实例讲解Lambda表达式和方法引用的使用,帮助开发者更好地理解和应用Java 8新特性。
摘要由CSDN通过智能技术生成

1.接口的默认方法

1.1传统的方法(之前的)

 在java8之前java中接口里面的方法默认都是 public abstract 修饰的抽象方法并且没有方法体

1.2 static方法

  1. 使用static修饰接口中的方法并且必须有主体
  2. 接口的static方法只能被接口本身调用
  3. 接口的static方法不能被子接口继承
  4. 接口的static方法不能够被实现类覆写及直接调用

1.3 default方法

学习了上面的static方法之后,这里模仿来学习 

  1. default方法必须有主体
  2. default方法可以被实现类覆写
  3. default方法可以被子接口继承
  4. default方法可以视作是接口定义时的初始化操作

2.函数式接口

2.1什么是函数式接口

函数式接口就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转化为lambda表达式

2.2函数式接口API

jdk1.8之前已有的函数式接口

  • java.lang.Runnable
  • java.util.concurrent.Callable
  • java.util.Comparator
  • java.io.FileFilter
  • java.io.file.PathMatcher
  • ...

jdk 1.8新增的函数接口

java.util.function 此包中包含了很多类,用来支持JAVA的函数式编程

2.3函数式接口注解

@functionalInterface

我们在函数式接口上面加上此注解后,里面就只能够有一个抽象方法了,当然不加此注解且只有一个抽象方法的接口也是函数式接口,只是没有限定提示而已。 

3.Lambda表达式

3.1 什么是Lambda表达式

 简单来说,可以看成是匿名内部类的简写,使用Lambda表达式时,接口必须是函数式接口(有且仅有一个抽象方法)。

3.2 Lambda表达式的语法

基本语法:

<函数接口名> <变量名> = (参数1,参数2...)->{

                    //方法体

}

特点说明:(参数1,参数2 ...)表示参数列表;

                  ->表示连接符

                 {}内部是方法体

  1. =右边的类型会根据左边的函数式接口类型自动判断
  2. 如果形参列表为空,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值