http://www.importnew.com/11908.html#intro
函数式接口
理解Functional Interface(函数式接口,以下简称FI)是学习Java8 Lambda表达式的关键所在,所以放在最开始讨论。FI的定义其实很简单:任何接口,如果只包含唯一一个抽象方法,那么它就是一个FI。为了让编译器帮助我们确保一个接口满足FI的要求(也就是说有且仅有一个抽象方法),Java8提供了@FunctionalInterface注解。举个简单的例子,Runnable接口就是一个FI,下面是它的源代码:
[java] view plain copy
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
Lambda语法糖
为了能够方便、快捷、幽雅的创建出FI的实例,Java8提供了Lambda表达式这颗语法糖。下面我用一个例子来介绍Lambda语法。假设我们想对一个List<String>按字符串长度进行排序,那么在Java8之前,可以借助匿名内部类来实现:
热门评论
3、Base64 编码
4、并行数组parallel
http://www.importnew.com/24300.html 这个写的好
http://www.importnew.com/20331.html 51CTO 我要自学所有的都值得看
Java8的新增类库
1、空值容器 Optional 类
2、Clock-->LocalDate、LocalTime-->LocalDateTime
Clock给定时区即可 获得当前时间
计算时间过程Duration 、Period
方法引用: 配合supplier引用构造函数 ::new
Java8.testFun( Java8::new );
static void testFun( Supplier<Java8> supplier){...}
Lambda表达式中引用:
Class:: static_method
Class:: method
Instance:: method