Java为什么要有包装类

317 阅读1分钟

在java中有八种基本数据类型对应每种基本类型又有八种包装类型:

基本类型:boolean, char, int, byte,short,long, float,double

包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double

既然有了基本类型为什么还要有包装类呢?

1.包装类是对象类型,在使用时需要传入一个对象,比如 集合能接收的类型为Object,基本类型是无法添加进去的,还有范型也必须使用包装类

2.使用含义上,int初始化是0,而integer作为对象是要初始化赋值的,不赋值情况下是null,在某些场合下0是有意义的,是刻度,而不是我们期望的为空。考试分数为0和未考试,是两种类型。

3.包装类型是引用类型,说白了就是一个类,类有对象有方法 假设有这样一个场景,我接收到一个String型的数据想把它转换为整型,如果没有包装类这个操作是无法完成的,有了包装类我们可以这样做:

String num1 =  "123" ;
int num2 = Integer.parseInt(num1);

parseInt就是Integer包装类提供的一个将字符串转成int型的方法。

包装类里面有一些很有用的方法和属性,如HashCode,ParseInt

4.实用上的点就是自动拆箱装箱,但是都为包装类的话,都是引用,需要equals而不是 == 引用比较地址而非值