以Integer为例,内部维护了一个静态内部类
维护了一个 Integer cache[] 数组,保存了-128到127,
在使用valueOf()方法时,会首先判断值是否在cache[] 数组中,不在的话,就new一个Integer对象。
Integer a1 = 128; //感觉用的是valueOf方法声明的
Integer a2 = -128;
Integer a3 = -128;
Integer a4 = 128;
Integer a5=new Integer(-128);
Integer a6=Integer.valueOf(-128);
System.out.println(a1 == a4);
System.out.println(a2 == a3);
System.out.println(a2 == a5);
System.out.println(a2 == a6);
结果是:
false
true
false
true