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.java
3.jvm
String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2);
返回的是false。spa
緣由:由於str2中的llo是新申請的內存塊,而==判斷的是對象的地址而非值,因此不同。若是是String str2 = str1,那麼就是true了。對象