目录
前言
在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() 方法创建一个包装类实例而不是直接使用构造方法,因为该方法可以走缓存提高性能