java 8可谓是java语言历史上变化最大的一个版本,其承诺要调整java编程向着函数式风格迈进,这有助于编写出更为简洁、表达力更强,并且在很多情况下能够利用并行硬件的代码。
Java8 的新特性主要有:Lambda表达式、 Stream API、全新时间日期 API、ConcurrentHashMap、MetaSpace。
java8新特性优点:速度更快,代码更少(增加了新的语法Lambda表达式),强大的Stream API,便于并行,最大化减少空指针异常Optional。其中最为核心的为Lambda表达式
与Stream API
为什么使用Lambda表达式?
Lambda表达式是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使java的语言表达能力得到了提升。
- 匿名内部类代码与Lambda表达式比较
/*
匿名内部类代码与Lambda表达式比较
*/
public class TestLambda {
@Test
//匿名内部类
public void test1(){
Comparator<Integer> com = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return Integer.compare(o1,o2);
}
};
TreeSet<Integer> ts = new TreeSet<>(com);
}
@Test
//Lambda表达式
public void test2(){
Comparator<Integer> com = (x,y) -> Integer.compare(x, y);
TreeSet<Integer> ts = new TreeSet<>(com);
}
}
测试使用java8的好处
需求:我们要获取一定条件下的员工信息。
- 员工信息实体类
public class Employee {
private String name;//姓名
private int age ;//年龄
private double salary;//工资
public Employee() {
}
public Employee(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
public String getName() {