1,枚举是什么?
是一个继承了java.lang.Enum的一个类,不能被继承,枚举中的成员都是该枚举的实例。
2,枚举中的常用方法?
-
valueof(String):将字符串转成枚举的实例(对象)
-
ordinal():获取该枚举实例在枚举中的位置,数字类型
-
values():获取所有的枚举成员,数组
3,什么是泛型
本质:参数化的数据类型
将数据类型当作参数使用,定义的时候使用 类型占位符(T,E,K,V) ,实际使用时(创建对象时,调用方法时)传入具体的数据类型。
作用:编译期对数据类型进行检查约束。
4,什么是泛型擦除
泛型只在编译期进行类型检查(约束),编译时会将类型信息抹除,生成的字节码中并不保留泛型的类型信息。
5,泛型通配符
上边界通配符: <? extends T>
下边界通配符:<? super T>
6,如何定义泛型类、泛型接口 和泛型方法
public class 类名<T>{ } public interface 接口名<T>{ } public <T> T 方法名(Class<T> tClass,T t){ }
7,Lambda表达式
什么时候使用:需要函数式接口的地方,都可以使用
8,函数式接口
只有一个抽象方法的接口
-
功能性接口:Function
有输入参数,有返回值
-
消费型接口:Consumer
有输入参数,没返回值
-
供给型接口:Supplier
无传入参数,有返回值
使用get()方法获得这个返回值
-
断言型接口:Predicate
有传入参数,有返回值Boolean
多用于判断与过滤,使用test()方法执行这段行为