請你能解釋下面的行爲。在JDK 6在java等於==的行爲
true
true
true
false
public class EqAndRef {
public static void main(String[] args) {
Integer i = 10;
Integer j = 10;
Double a = 10D;
Double b = 10D;
System.out.println(i.equals(j));
System.out.println(i == j);
System.out.println(a.equals(b));
System.out.println(a == b);
}
}
輸出爲什麼== b爲假,我==Ĵ不是假的?
這是參考,而不是平等的價值相等,用'Integer'不斷爲實習生(ED)。你應該總是喜歡'.equals()'和'Object'類型。 – 2014-09-28 02:28:04
請參閱[是否可以使用==比較Java中的不可變對象](http://stackoverflow.com/questions/10970823/is-it-ok-to-compare-immutable-objects-in-java-使用而不是等於) – Volune 2014-09-28 02:29:00
@Volune,示例中的Double對象是不可變的。 – 2014-09-28 02:32:30