int x = 10;
int y = 10;
Integer x1 = new Integer(10);
Integer y1 = new Integer(10);
System.out.println(x == y);
System.out.println(x1 == y1);
第一個sop將打印爲真,而第二個將打印爲false。什麼是實際問題?如何正確使用原始類型
int x = 10;
int y = 10;
Integer x1 = new Integer(10);
Integer y1 = new Integer(10);
System.out.println(x == y);
System.out.println(x1 == y1);
第一個sop將打印爲真,而第二個將打印爲false。什麼是實際問題?如何正確使用原始類型
的第二個是比較對象Id's.Since每個對象都有一個唯一的Id它返回false。
第一SOP打印正確的,因爲INT x和y包含相同的比特模式爲10
在第二種方法中X1和Y1是整數類型的兩個不同的對象的參考變量,以便它們是指向不同的對象在內存中,這就是爲什麼在第二個Sop你會得到錯誤的。
如果要檢查兩個整數的平等,你可以使用
x1.equals(y1)
,它將返回true。
這種問題已經被問過/回答了很多次...先做一些谷歌 – Kent
第二個有不同的對象如此虛假 – Yubaraj
[java:Integer equals vs. ==](http:// stackoverflow。 COM /問題/ 3637936/Java的整數等於-VS) – Julien