【代码】
Integer integer = new Integer(47);
int integer1 = 47;
System.out.println(integer == integer1); //true
Integer integer2 = new Integer(47);
Integer integer3 = new Integer(47);
System.out.println(integer2 == integer3); //false
【问题】
如上所述,对象的存储是在堆中,
第二个示例中两个都new了对象,所以引用地址不同,为false;那第一个示例中两个不在同一个存储区域,相比较为什么为true?难道跨区域比软了?
现在对值的存储有点迷茫了,求各位指点迷津...
存储java对象
Integer integer = new Integer(47);
int integer1 = 47;
System.out.println(integer == integer1); //true
Integer integer2 = new Integer(47);
Integer integer3 = new Integer(47);
System.out.println(integer2 == integer3); //false
【问题】
如上所述,对象的存储是在堆中,
第二个示例中两个都new了对象,所以引用地址不同,为false;那第一个示例中两个不在同一个存储区域,相比较为什么为true?难道跨区域比软了?
现在对值的存储有点迷茫了,求各位指点迷津...
存储java对象
比较的是一个对象在内存中的地址值,比如2个字符串对象String s1 = new String("str");String s2 = new String("str");如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。
equals:
对值的比较
Integer integer = new Integer(47);
创建两个对象
1.new Integer();
2.定义一个integer变量,Integer integer=47;