什么是装箱和拆箱?
每一种基本数据类型都是对应一种包装类的。
int(4字节) | Integer |
byte(1字节) | Byte |
short(2字节) | Short |
long(8字节) | Long |
float(4字节) | Float |
double(8字节) | Double |
char(2字节) | Character |
boolean | Boolean |
装箱:基本数据类型转换成包装类;
Integer i = 10;
拆箱:包装类转换成基本数据类型;
int n = i;
为什么基本数据类型还要有包装类?
我的理解是,java是一种面向对象的语言,那么基本数据类型也应该具备对象的特征。那么就出现了对应了包装类,出现了类,类中就应该包含属性和方法,可以更简便的去操作基本数据类型。
装箱和拆箱是如何实现的呢?
(下面我用Integer类举例)
装箱是通过调用Integer类的valueOf(int);方法实现的。
拆箱是通过调用Integer类的intValue();方法实现的。
参考资料:
http://www.cnblogs.com/dolphin0520/p/3780005.html
https://blog.csdn.net/wang_8649/article/details/72129616