广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

java8的新特性

作者:邓华发布时间:2020-11-02分类:Java技术浏览:1078


导读:java作为一门编程语言,是IT行业里主流的编程语言,下面我们一起来看看java8.0的新特性是什么。

1.Lambda表达式:可以称为闭包,Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读,最重要的是代码量也随之减少很多。

1.1语法:(parameters) -> expression或(parameters) ->{statements;}
():参数列表;
->: 运算符;
即:() -> lambda主体(单一表达式或语句块)
1.2变量作用域:只能引用标记了 final 的外层局部变量,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误
1.3 eg:
无参数:
//不使用Lambda表达式

1 Runnable runnable1=new Runnable(){2     @Override3     public void run(){4         System.out.println("Running without Lambda");5     }6 };

//使用Lambda表达式

1 Runnable runnable2=()->System.out.println("Running from Lambda");

一个参数:x -> 2 * x ;
两个参数:(x, y) -> x – y ;


2.方法引用:通过方法的名字来指向一个方法,可以使语言的构造更紧凑简洁,减少冗余代码。
语法:使用一对冒号 ::。

1 @FunctionalInterface 2 public interface Supplier<T> { 3     T get(); 4 } 5  
6 class Car { 7     //Supplier是jdk1.8的接口,这里和lamda一起使用了
8     public static Car create(final Supplier<Car> supplier) { 9         return supplier.get();10     }11  
12     public static void collide(final Car car) {13         System.out.println("Collided " + car.toString());14     }15  
16     public void follow(final Car another) {17         System.out.println("Following the " + another.toString());18     }19  
20     public void repair() {21         System.out.println("Repaired " + this.toString());22     }23 }

构造器引用:它的语法是Class::new,或者更一般的Class< T >::new实例如下:

final Car car = Car.create( Car::new ); final List< Car > cars = Arrays.asList( car );

静态方法引用:它的语法是Class::static_method,实例如下:

cars.forEach( Car::collide );

特定类的任意对象的方法引用:它的语法是Class::method实例如下:

cars.forEach( Car::repair );

特定对象的方法引用:它的语法是instance::method实例如下:

final Car police = Car.create( Car::new ); cars.forEach( police::follow );


3.函数式接口:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

函数式接口可以被隐式转换为 lambda 表达式。


学java,来北大青鸟。

标签:java北大青鸟惠州北大青鸟


Java技术排行
标签列表
网站分类
文章归档
最近发表