直接上代码敲一遍
public class AutoWrapping {
public static void main(String[] args) {
// TODO Auto-generated method stub
//自动装箱规范要求:介于-128~127之间的short和int被包装到固定的对象中去
Integer a=10;
Integer b=10;//a,b是一个对象
Integer c =new Integer(10);//手动申请了一个对象,值为10
System.out.println(a==b);//t
System.out.println(c==b);//t-----f 虽然值一样,但是不是同一个对象
int a1 = 10;
System.out.println(a==a1);//t 包装类和基本类型比较的时候,先将包装类拆成基本数据类型再进行比较
System.out.println(a.equals(a1));//f-----t equals方法比较的是同一类对象的值
System.out.println(a.equals(b));//t
System.out.println(c.equals(b));//t
Integer a2=1000;
Integer b2=1000;
Integer c2 =new Integer(1000);
System.out.println(a2==b2);//t----f
System.out.println(c2==b2);//t----f
int a3 = 1000;
System.out.println(b2==a3);//t
System.out.println(a2.equals(a3));//f----t
System.out.println(a2.equals(b2));//t
System.out.println(c2.equals(b2));//t
//ArrayList<int> arr = new ArrayList<>(); 报错,参数必须是引用类型,所以引入包装类
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(333); //自动装箱,相当于 arrayList.add(Integer.valueOf(3))
int test = arrayList.get(0);//自动拆箱,相当于int i = arrayList.get(0).intValue();
//包装器还可以用来将某些数字字符串转换成数值
int x = Integer.parseInt("555");
System.out.println(test + " " + x);
}
}
输出:
true
false
true
true
true
true
false
false
true
true
true
true
333 555