1.自动装箱和拆箱
装箱:将基本类型用他们对应的引用类型包装起来
拆箱:将包装类型转换为基本数据类型;
//JDK5.0以后,java提供了自动拆装箱
Integer temp = 199; //(自动)装箱——底层调用的是valueOf方法
int temp1 = temp; //(自动)拆箱——底层调用的是intValue方法
2.有哪些包装类
Java 为每个原始类型提供了包装类型:
3.Integer a= 127 与 Integer b = 127相等吗
对于对象引用类型:==比较的是对象的内存地址。
对于基本数据类型:==比较的是值。
如果整型字面量的值在-128到127之间,那么自动装箱时不会new新的Integer对象,而是直接引用常量池中的Integer对象,超过范围 a1==b1的结果是false
public static void main(String[] args) {
Integer a = new Integer(3);
Integer b = 3; // 将3自动装箱成Integer类型
int c = 3;
System.out.println(a == b); // false 两个引用没有引用同一对象
System.out.println(a == c); // true a自动拆箱成int类型再和c比较
System.out.println(b == c); // true
Integer a1 = 128;
Integer b1 = 128;
System.out.println(a1 == b1); // false
Integer a2 = 127;
Integer b2 = 127;
System.out.println(a2 == b2); // true
}