Java中的基本数据有个8个包含byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(浮点型)、double(双精度浮点型)、boolean(布尔类型),char(字符型),不能直接当作对象使用
下列为对应封装类型:
数据类型名称 | 占用字节 | 默认值 | 封装类 |
byte(字节型) | 1 | 0 | Byte |
short(短整型) | 2 | 0 | Short |
int(整型) | 4 | 0 | Integer |
long(长整型) | 8 | 0l | Long |
float(浮点型) | 4 | 0.0f | Float |
double(双精度浮点型) | 8 | 0 | Double |
boolean(布尔类型) | 1 | true/false | Boolean |
char(字符型) | 2 | \u0000 | Character |
java是一种面向对象的语言,基本数据类型很显然不及备面向对象的条件。Object 类是所有类的父类,而且是唯一不用指定明确继承的类。例如基本类型如 int 不是引用类型,也不是继承自 Object,所以 Java 需要一个这样的包装类来使其面向对象的完整性。
一、为什么使用包装类?
a、作为 和基本数据类型对应的类 类型存在,方便涉及到对象的操作。
b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
包装类可以完成自动拆箱装箱,将基本类型的数据转换为引用类型数据,为装箱。反之则为拆箱
二、包装类与基本数据的不同之处
1、在Java中,一切皆对象,但八大基本类型却不是对象。
2、声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。
3、存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。
4、初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false;
5、使用方式的不同,比如与集合类合作使用时只能使用包装类型。
6、什么时候该用包装类,什么时候用基本类型,看基本的业务来定:这个字段允不允许null值,如果允许null值,则必然要用封装类,否则值类型就可以了,用到比如泛型和反射调用函数.,就需要用包装类!