Java基础 装箱与拆箱
Java是一门面向对象语言,其中提供了包装类来包装基本数据类型。
基本数据类型例如int可以通过
手动装拆箱
Interger.valueOf(int i)来实现装箱
intValue(Interger I)来实现拆箱
自动装拆箱
Interger I = 1;
int i = I;
需要注意的是,源码中自动装箱时,如果取值范围在【-128,127】之内,则返回缓存值,不会开辟新的内存空间装箱,会指向同一个对象。
所以Short,Integer,Long的取值空间在此之内会返回同一个对象。但是Float、Double中的valueOf(),永远返回新创建的对象,因为一个范围内的整数是有限的,但是小数却是无限的,无法保存在缓存中。
package day1119;
public class TestBox2 {
public static void main(String[] args) {
Integer a = 100;
Integer b = 100;
Integer c = 200;
Integer d = 200;
System.out.println(a == b);
System.out.println(c == d);
}
}
两条结果都为true。