标签:
Integer i1 = 20; Integer i2 = 20 ; System.out.println(i1 == i2); // true Integer i3 = 200; Integer i4 = 200 ; System.out.println(i3 == i4); // false
int i1=20; int i2=20; System.out.println(i1==i2);//true int i3=200; int i4=200; System.err.println(i3==i4);//true
原因:i1 开辟了一个内存空间,对于i2来说,jvm先在内存中寻找是否有20的地址,有就给i2赋值,也就是让i2也指向20那块地址。所以返回的是TRUE.
3.
String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2);
返回的是false。
原因:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是true了。
标签:
原文地址:http://www.cnblogs.com/PopShow/p/5206504.html