java8,也称为jdk1.8,于2014.03.18日发布,它支持函数式编程,新的js引擎,新的日期API,新的Stream Api等。
我们主要讨论以下几个新特性:
①Lambda表达式。
允许把函数作为一个方法的参数,函数作为参数传递进方法中。
②方法引用。
方法引用提供了非常有用的语法,可以直接引用已有的Java类或对象的方法或构造器。它与Lambda表达式联合使用,方法引用可以使语言的构造更加紧凑简洁,减少冗余代码。
③默认方法。
就是一个在接口里面有了实现的方法。
④新工具。
新的编译工具,比如:Nashorn引擎jjs、类依赖分析器jdeps。
⑤Date Time API
加强对日期与时间的处理。
⑥Optional类
是java8类库的一部分,主要用来解决空指针异常问题。
⑦Nashorn JavaScript引擎
允许我们在jvm上运行特定的js应用。
Java8的编程风格
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
public class Java8Tester {实例
public static void main(String args[]){
List<String> names1 = new ArrayList<String>();
names1.add("Google ");
names1.add("Runoob ");
names1.add("Taobao ");
names1.add("Baidu ");
names1.add("Sina ");
List<String> names2 = new ArrayList<String>();
names2.add("Google ");
names2.add("Runoob ");
names2.add("Taobao ");
names2.add("Baidu ");
names2.add("Sina ");
Java8Tester tester = new Java8Tester();
System.out.println("使用 Java 7 语法: ");
tester.sortUsingJava7(names1);
System.out.println(names1);
System.out.println("使用 Java 8 语法: ");
tester.sortUsingJava8(names2);
System.out.println(names2);
}
// 使用 java 7 排序
private void sortUsingJava7(List<String> names){
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
}
// 使用 java 8 排序
private void sortUsingJava8(List<String> names){
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
}
}