jdk1.4以前的所有版本不能使用
自动装箱(auto_boxing)和自动拆箱(auto_unboxing)
public static void main(String[] args) {
//5.0以前的
Integer i1 = new Integer(10);//装
int i2 = i1.intValue();//拆
//5.0以后
Integer i3 = 10;//自动装
int i4 = i3;//自动拆
m1(321);//自动装
m2(2,1);
}
public static void m1(Object o) {
System.out.println(o);
}
public static int m2(Integer i1,Integer i2) {
return i1-i2;//自动拆
}
自动装箱和自动拆箱是编译器的概念和运行程序无关----》主要目的是方便程序亚员编写
//所有的字符串都会在 字符串常量池 中
//如果数据是在-128--->127期间,java引入了一个 “整形常量池”
public static void main(String[] args) {
Integer i1 = new Integer(10);
Integer i2 = new Integer(10);
System.out.println(i1==i2);//false 保存的内存地址不一样
System.out.println(i1.equals(i2));//true Integer 已经重写了Object中的equal方法
//比较数据是否相等
//所有的字符串都会在 字符串常量池 中
//static final Integer cache[] = new Integer[(-(-128))+127]
//如果数据是在-128--->127期间,java引入了一个 “整形常量池”,
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3==i4);//false
Integer i5 = 127;//不会在堆中创建对象,只会在整形常量池中拿
Integer i6 = 127;
System.out.println(i5==i6);//true
Integer i7 = -127;
Integer i8 = -127;
System.out.println(i7==18);//true
Integer i9 = -129;//Integer i9 = new Integer (-129);
Integer i10 = -129;
System.out.println(i9==i10);//false
}