目录

函数介绍

使用方式上,函数和匿名类差不多,但是他们是有本质区别的。 函数是没有内存空间的,所以没有属性的概念

stream

执行流程

  1. Stream.of(1,2,3).map(a→a*10).filter(a→a >20).count()
  2. 第一步生成stream链
  3. 第二部,构建函数链
  4. 第三步: 将每个数据依次调用方法链
    1. 如果没有短路操作,如:count、sum
      1. 执行方式:spliterator.forEachRemaining(方法链)
    2. 如果有短路操作, 如:findFirst
      1. 执行方式:while (!方法链.cancellationRequested() && spliterator.tryAdvance(方法链))
      2. 一般短路方法(如:findFirst)会实现cancellationRequested()函数,cancellationRequested也是链式调用的