filter()中参数就是Predicate,函数型接口: Function<T,R> R apply(T t)有参有返回值的抽象方法;reduce()中参数BinaryOperator(ps: BinaryOperatorextends BiFunction<T,T,T>)
1、启动类加载器:Bootstrap ClassLoader,负责加载存放在JDK\jre\lib(JDK代表JDK的安装目录,下同)下,或被-Xbootclasspath参数指定的路径中的,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被Bootstrap ClassLoader加载)。启动类加载器是无法被Java程序直接引用的。
一个被它注解的接口只能有一个抽象方法,有两种例外:是接口允许有实现的方法,这种实现的方法是用default关键字来标记的(java反射中java.lang.reflect.Method#isDefault()方法用来判断是否是default方法)第二如果声明的方法和java.lang.Object中的某个方法一样,它可以不当做未实现的方法,不违背这个原则:一个被它注解的接口只能有一个抽象方法,比如:java public interface Comparator{ int compare(T o1
其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)*。
函数式编程:面向对象编程是对数据进行抽象;函数式编程是对行为进行抽象。核心思想:使用不可变值和函数,函数对一个值进行处理,映射成另一个值。