前言
在Java5 中添加了两个新特性,那就是自动装箱和拆箱,因为基本类型的广泛使用,但是Java 又是面向对象的语言,所以提供了包装类型的支持。
一、包装类
1.包装类其实就是8种数据类型对应的引用类型
2.为什么要使用包装类
JAVA是面向对象语言,为了实现一切皆对象,于是为8种基本数据类型提供了对于的引用类型
集合和泛型只支持包装类型,不支持基本数据类型
比如:List<int> = new ArrayList<>();
编译就会报错
为了解决该问题,我们引入了包装类,顾名思义,就是将基本类型“包装起来“,使其具备对象的性质,包括可以添加属性和方法,位于java.lang包下。
二、装箱和拆箱
既然有了基本数据类型和包装类,就必然存在它们之间的转换
1.装箱
将基本数据类型转化为对应类型的包装类的过程叫“装箱”;
public static void main(String[] args) {
int a = 10;
Integer b = a; //自动装箱
}
2.拆箱
将包装类转为对应类型的基本数据类型的过程叫“拆箱”
public static void main(String[] args) {
Integer c = 11;
int d = c; //自动拆箱
}
三、包装类特有功能
1.包装类默认值
包装类的变量的默认值可以是null,容错率更高
2.基本类型转字符串类型
包装类可以把基本类型的数据转换为字符串形式,如下图有三种方式
3.字符串类型转基本类型
如下图,不管是把字符串转换成整数还是小数,都可以直接调valueof方法
public static void main(String[] args) {
//转换整数
String number = "18";
int age = Integer.parseInt(number);
int age = Integer.valueOf(number);
//转换小数
String number2 = "18.5";
double age1 = Double.parseDouble(number2);
double age1 = Double.valueOf(number2);
}
总结
建议使用valueOf() 方法创建一个包装类实例而不是直接使用构造方法,因为该方法可以走缓存提高性能