- class zijiwenti2
- {
- public static void main(String[] args)
- {
- Integer h = new Integer(100);
- Integer a = new Integer(100);
- Integer b = 100;
- Integer c = 100;
- System.out.println(a==h);//这里比较的是两个对象的地址,new了两个对象,开辟了两个不同的空间,所以这两个空间的地址当然不一样了,
- //只是这两个对象里边的值都指向的是常量池里边的 100.
- System.out.println(b==c);//Integer类的内部, 有一个常量静态数组, 在Integer类被加载的时候, 预先创建了-128 ~ 127的Integer对象, 所以当声明的Integer类型变量的值在-128 ~ 127的范围内时, 不会新创建对象, 直接引用数组中创建好的。所以这两个都直接饮用的是Integer内部的100.所以相等。
- }
- }
复制代码 |