概念
将基本数据类型进行封装,增加点属性,方法,构造器,产生一个新类,即包装类。
从JDK1.0即开始支持。
基本数据类型与包装类对应关系
基本数据类型 | 包装类 | 继承关系 |
---|---|---|
byte | Byte | -> Number -> Object |
short | Short | -> Number -> Object |
int | Integer | -> Number -> Object |
long | Long | -> Number -> Object |
float | Float | -> Number -> Object |
double | Double | -> Number -> Object |
char | Character | -> Object |
boolean | Boolean | -> Object |
为什么要使用包装类
- 因为Java是面向对象的语言,擅长操作各种类
- 数组可以装基本类型的数据,但是集合只能装引用类型数据
自动装箱与自动拆箱
从JDK1.5以后新出的特性,指将基本数据类型和包装类进行快速的自动数据类型转换
自动装箱
// 自动装箱: int -> Integer
Integer i = 12;
自动拆箱
// 自动拆箱:Integer -> int
Integer i = new Integer(99)
int number = i;
使用包装类,以Integer举例
equals
Integer对Object中的equals方法进行了重写,比较的是底层封装的value值。
==
当Integer的Value值在-128-127之间,自动装箱时返回的是数值,否则返回的是包装类对象。
那么比较的时候,如果在-128-127之间,是比较数字值,否则是比较两个对象的地址值。