包装类和自动拆装箱
有时候我们相对基础数据类型进行一些操作,但因为基础类型没有
方法,不好操作。
其实java对每一种基础类型都进行了封装,生成对应的包装类
基本数据类型 |
包装类 |
Byte |
Byte |
Boolean |
Boolean |
short |
Short |
char |
Character |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
Integer是个对象,本来是要new的。
但是太常用了,所以简化了定义的方式,和基础类型一样。
// 本来是要这么写的:
Integer i= new Integer(3);
// 事实上,我们这么写也行
Integer i= 3;
这很明显,左边是包装类,右边是基础数据类型,这种静默的转化 我们称之为自动拆装箱。
自动装箱:将基础数据类型自动装换为包装类。
自动拆箱:将包装类自动转换为基础数据类型。
// 自动装箱
Integer i = 10;
// 自动拆箱
int m = i;
在Integer的源码中,有个缓存,缓存了 -128~127的Integer对象。
我想问问: num1 == num2 到底比的是什么?
评论区写出你的答案吧!!!