1.请说明lambda表达式对匿名内部类的优化原则?
【1】当匿名内部类实现的是一个接口时可以优化 【2】当实现的接口中只有一个抽象方法时可以优化
2.请说出lambda表达式的应用场景?
当需要的是一个接口的对象,接口中还只有一个抽象方法时,可以用
3.说出lambda表达式的省略原则?
至上原则之--可推导可省略,当我们在lambda表达式中所给出的参数已经在传参之前定义好了参数类型时,那在lambda表达式中可以省略不写,如果参数有且进右一个,()可以不写。当方法体中的语句只有一句时{},;,return也可以省略。
4.说明接口升级之后的组成部分?
JDK8之后,接口中的组成部分有:
【1】常量public static final
【2】抽象方法:public abstract ->实现接口的类必须重写
【3】默认方法:public default ->JDK8以后给出默认方法用于接口升级,可重写可不重写
【4】静态方法:public static ->只被接口调用,外部无法访问
【5】私有方法:private ->用于接口中的共性抽取,私有外部无法访问
5.说出方法引用的四个场景分别是什么?
【1】引用类方法:当lambda中所有的参数都传递给静态方法时可以使用引用类方法简化。
【2】引用对象的实例类方法:当lambda中的参数都传递给一个实力类对象的时候可以使用引用实例类方法简化。
【3】引用类的实例:当lambda中的第一个参数作为对象,后面的参数都作为该对象实例类中的成员方法的全部参数的时候可以使用引用类的实例方法。
【4】引用构造器:当lambda中所有的的参数都作为一个构造方法的所有参数时,可以时候引用构造器方法。
|