JAVA 8是JAVA开发体系的一个重要里程碑式版本。最在于2014年3月18日发布。随着Java 8的发布,Java提供了对函数式编程、新的JavaScript引擎、用于日期时间操作的新API、新的流式编程API等的支持。
新特性:
- Lambda表达式−添加Java功能的处理能力。
- 方法引用−引用函数的名称,而不是直接调用它们。使用函数作为参数。
- 默认方法−接口有默认的方法实现。
- 添加新工具−新的编译器工具和实用程序像jdeps的依赖关系。
- 流API−新流API来促进管道处理。
- 日期时间API−改善日期时间API。
- 可选−强调最佳实践来妥善处理null值。
- Nashorn,JavaScript引擎−java引擎执行JavaScript代码。
来看看下面的代码片段。
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("Mahesh ");
names1.add("Suresh ");
names1.add("Ramesh ");
names1.add("Naresh ");
names1.add("Kalpesh ");
List<String> names2 = new ArrayList<String>();
names2.add("Mahesh ");
names2.add("Suresh ");
names2.add("Ramesh ");
names2.add("Naresh ");
names2.add("Kalpesh ");
Java8Tester tester = new Java8Tester();
System.out.println("Sort using Java 7 syntax: ");
tester.sortUsingJava7(names1);
System.out.println(names1);
System.out.println("Sort using Java 8 syntax: ");
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));
}
}
程序执行结果如下:
Sort using Java 7 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
Sort using Java 8 syntax:
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
这段代码里的sortUsingJava8()函数就是使用了lambda表达式下的集合排序函数作为参数来获取排序判断条件。
--后续章节会详细讲解用法。