Java Integer的相關蹊蹺

2021-08-26 17:50:53 字數 1220 閱讀 5447

【參考】integer的裝箱和拆箱

integer a = 1;

integer b = 2;

integer c = 3;

integer d = 3;

integer e = 321;

integer f = 321;

long g = 3l;

long h = 2l;

system.out.println(c == d);

system.out.println(e == f);

system.out.println(c == (a + b));

system.out.println(c.equals((a+b)));

system.out.println(g == (a+b));

system.out.println(g.equals(a+b));

system.out.println(g.equals(a+h));

對於這一段**,有幾個點值得關注:

/**

* compares this object to the specified object. the result is

* if and only if the argument is not

* and is a object that

* contains the same value as this object.

** @param obj the object to compare with.

* @return if the objects are the same;

* otherwise.

*/public boolean equals(object obj)

return false;

}

ps:這裡的呼叫者是long型別,但是傳入引數的自動裝箱型別是由引數本身決定的。比如:system.out.println(g.equals(a+b));

編譯後為:system.out.println(g.equals(integer.valueof(a.intvalue()+b.intvalue())));這裡的g是乙個long型別,所以obj instanceof long 直接return false; 

【參考】 single number 的補充部分

java Integer 比較的問題

習慣上把integer和int型別混為一談 所以習慣的把 integer 的a 和 integer 的b使用 進行了比較,結果兩個值不相等 system.out.println a b 列印false 老是忘記在給integer包裝類賦值的時候,他是呼叫public static integer v...

Java Integer和String的比較操作

一 實驗 先看一組實驗,會有不少驚奇的發現 128,127 範圍的 自動裝箱 box 同值是同乙個物件 integer a 1 integer b 1 system.out.println i1 a b true 不在 128,127 範圍裝箱的integer,值相同也不是同乙個物件 a 128 b...

自相關互相關卷積的 自相關與互相關

自相關 autocorrelation 也叫序列相關,是乙個訊號與其自身在不同時間點的互相關。非正式地來說,自相關是對同一訊號在不同時間的兩次觀察,通過對比來評判兩者的相似程度。自相關函式就是訊號x t 和它的時移訊號x t 的乘積平均值。它是時移變數 的函式。這是從書上抄來的話,到底是什麼意思呢?...