0%

  • 只有一个抽象方法的接口我们称之为函数式接口
    • JDK 的函数式接口都加上了 @Functionallnterface 注解进行标识。但是无论是否加上该注解,只要接口中只有一个抽象方法,都是函数式接口。
阅读全文 »

  • 我们在编写代码的时候出现最多的就是空指针异常。所以在很多情况下我们需要做各种非空的判断。例如:

    1
    2
    3
    4
    Author author = getAuthor();
    if(author != null){
    System.out.println(author.getName());
    }
    • 尤其是对象中的属性还是对象的情况下,这种判断会更多。过多的判断语句会让我们的代码显得臃肿不堪。

    所以在 JDK8 中引入了 Optional,养成使用 Optional 的习惯后你可以写出更优雅的代码来避免空指针异常。并且在很多函数式编程相关的 API 中也都用到了 Optional,如果不会使用 Optional 也会对函数式编程的学习造成影响。

阅读全文 »

  • Java8 的 Stream 使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。
阅读全文 »

  • Lambda 是 JDK8 中的一个语法糖,它可以对某些匿名内部类的写法进行简化,它是函数式编程思想的一个重要体现,让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作
  • 对哪些匿名内部类的写法进行简化呢?原则是:
    • 匿名内部类是一个接口,并且其中只有一个抽象方法需要被重写
阅读全文 »

  • 线程池:一个容纳多个线程的容器,容器中的线程可以重复使用,省去了频繁创建和销毁线程对象的操作。

    线程池作用:

    1. 降低资源消耗,减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务
    2. 提高响应速度,当任务到达时,如果有线程可以直接用,不会出现系统僵死
    3. 提高线程的可管理性,如果无限制的创建线程,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控
    • 线程池的核心思想:线程复用,同一个线程可以被重复使用,来处理多个任务
    • 池化技术 (Pool) :一种编程技巧,核心思想是资源复用,在请求量大时能优化应用性能,降低系统频繁建连的资源开销
阅读全文 »