JavaDay10-泛型、lambda表达式、函数式接口、装箱拆箱
泛型:
好处:1、参数化类型,定义集合时统一元素的类型;2、把运行时期的问题提前到了编译时期
泛型类class A
细节:1、不能写基本数据类型 2、传递数据时可以传递泛型的子类 3、如果不写,默认是Object类型
应用场景:
1、如果定义类、方法、接口的时候类型不确定,可以使用泛型
2、如果类型不确定,但是能确定在某个继承体系中,可以使用泛型的通配符(? extends 父类、? super 子类)
lambda表达式:
(参数类型 参数名)->{方法体};
可以实现函数式接口
函数式接口:
注解@FunctionInterface 保证函数式接口只有一个抽象方法
接口中只能有一个抽象方法
装箱拆箱
因:Java除了基本数据类型之外,其他都是对象
果:通过包装类实现基本数据类型转换成对象
装箱:基本数据类型-->包装类
拆箱:包装类-->基本数据类型
操作:
-
装箱
- 直接new包装类的对象,存储空间在内存
- valueOf(),-128~127之间的数字会存储在缓存中,超出的话自动创建对象存在内存
- 自动装箱 Integer i=1; 源码调用了valueOf()
-
拆箱
- 调用对象的***Value()
- 自动拆箱 int iValue=i;源码调用了***Value()
注意
1、包装类的应用:进行进制转换
2、包装类进行比较的时候不用“==”,用“equals()”
public class ZhuangXiangChaiXiang {
public static void main(String[] args) {
//装箱
Integer i=10;//自动装箱 会把-128~127之间的数字存放在缓存中
System.out.println(i);
String str="1000";
Integer integer=Integer.valueOf(str);//手动装箱 超出了127 会创建Integer对象
System.out.println(integer);
//拆箱
int iValue=i.intValue();
System.out.println(iValue);
}
}

浙公网安备 33010602011771号