一、JDK8新特性概览

image.png

二、Lambda表达式

为什么使用Lambda表达式?

  • Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
  • 在Java8之后的很多源码里用到了Lambda表达式,不学的话可能看不懂源码。

    简单使用

    ```java @Test public void test1(){

    1. //原始写法 匿名内部类
    2. Runnable r1 = new Runnable() {
    3. @Override
    4. public void run() {
    5. System.out.println("我爱北京天安门");
    6. }
    7. };
    8. r1.run();
    9. System.out.println("***********************");
    10. //lambda表达式,可以表达一样的意思
    11. Runnable r2 = () -> System.out.println("我爱北京故宫");
    12. r2.run();

    }

@Test public void test2(){

  1. Comparator<Integer> com1 = new Comparator<Integer>() {
  2. @Override
  3. public int compare(Integer o1, Integer o2) {
  4. return Integer.compare(o1,o2);
  5. }
  6. };
  7. int compare1 = com1.compare(12,21);
  8. System.out.println(compare1);
  9. System.out.println("***********************");
  10. //Lambda表达式的写法
  11. Comparator<Integer> com2 = (o1,o2) -> Integer.compare(o1,o2);
  12. int compare2 = com2.compare(32,21);
  13. System.out.println(compare2);
  14. System.out.println("***********************");
  15. //方法引用
  16. Comparator<Integer> com3 = Integer :: compare;
  17. int compare3 = com3.compare(32,21);
  18. System.out.println(compare3);

} ```