1、内部访问外部变量。1.8之前需要在外部变量加上final关键字,1.8的半边无需加该关键字,但是外部变量的值还是不能修改。
2、@FuncitonInterface,1.8之前的版本,JAVA是不支持多继承的,但到了1.8版本之后增加本函数接口,即是函数中有且只有一个抽象方法,可以用default关键字定义多个已实现的默认方法。这样,因为JAVA是可以继承多个接口的,因此通过函数接口也间接的实现了多继承。
@FunctionalInterface
public interface ITestLam{
default int getIntVal(){
return 1;
}
default long getLongVal(){
return 1;
}
int getVal();
}
3、lambda 拉姆表达式,拉姆表达式其实就是一个代码模块,或者说是一个函数体,具有以下特点。
- 参数可以不用带参数类型
- 如果只有一个参数可以去掉 括号()
- 如果函数只有一行,可以去掉大括号{}
如果有返回类型可以不用 return
4、lambda表达式可以直接做过函数的参数传递,以前的函数参数只能是对象或者基本变量。
5、向C++,指针式的方法引用。引用购置函数,类名::new,例如 Car: new
应用类中的静态方法,类名::方法,例如 Car::buyCar
- 应用 非静态方法,实例::方法名,例如 Car car ; car::sendCar
- 应用系统方法,包名::方法名,例如 System.out::println()
6、stream 流的使用