先劃重點:integer型別的整數比較數值大小用equals.()和intvalue(),盡量別用==去比較是否相等之前沒注意過integer型別比較數值大小,一直在用==
某天,寫的一段程式沒跑通,才注意到這個問題
public
static
void
main(string args)
結果:
true
true
false
true
/**
* returns an instance representing the specified
* value. if a new instance is not
* required, this method should generally be used in preference to
* the constructor , as this method is likely
* to yield significantly better space and time performance by
* caching frequently requested values.
** this method will always cache values in the range -128 to 127,
* inclusive, and may cache other values outside of this range.
**@param i an value.
*@return an instance representing .
*@since 1.5
*/public
static integer valueof(int i)
-128到127之間的數,比較數值大小的時候用equals.()和==得到的結果是一樣的,超出了這個範圍,用==比較大小就相當於判斷是否是同乙個物件了。
/**
* compares this object to the specified object. the result is
* if and only if the argument is not
* and is an 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;
}
附上看到的乙個總結的比較好的例子
public
static
void
main(string args)
結果:
new出來的 a0==b0 :false
1呼叫intvalue a0.intvalue() == b0.intvalue()true
將integer自動拆箱 a0==c: true
直接賦值的兩個integer的比較a2 == b2: true
直接賦值的兩個integer的比較 a6==b6: false
直接賦值的兩個integer的比較 a5 == b5: false
直接賦值的兩個integer的比較 a4 == b4: false
呼叫intvalue a4.intvalue() == b4.intvalue(): true
踩坑筆記之Integer數值比較
很多東西,表面上看起來挺簡單,實際上別有洞天,一不小心就是乙個坑。記錄一下昨天遇到的integer數值比較所遇到的 奇葩bug 1.問題場景 先看如下一段 if activity.gettotalcounts activity.getparticipationcounts activity.gett...
Integer 型別數值判斷相等的坑
記錄乙個曾面試遇到的題目,看似簡單,實則有坑。題目 public static void main string args 寫下輸出結果 true false 以上是正確答案,親測。why?因為本姑娘答了兩個 true,然後.不說了,都是淚 我們在給 integer 型別變數賦值時,integer ...
Oracle欄位型別踩坑
用varchar 不許用char 通過postman跑乙個springcloudalibaba中的乙個子服務,debug跟進去看一下,已經接收到引數值 圖1 再檢視控制台輸出的sql 圖2 複製控制台的sql到資料庫執行是有資料的 圖3 已經確認資料庫連線沒有問題 通常情況下資料有空格,準確查詢是查...