判斷Integer值相等最好不用==最好使用equals
Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
System.out.println(c == d);
System.out.println(e == f);
輸出 true false
Integer為對象判斷是否相等還是使用equals最靠譜,
int為基本類型,判斷是否相等就是可以使用==.
原因:
static final Integer cache[] = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++) {
cache[i] = new Integer(i - 128);
}
}
這是源碼,也就是說cache中已有-128到127,不在這範圍的會新new ,這時可以理解比較的是內存地址,也就是是不是同個一對象.
所以說當Integer的值不在-128到127的時候使用==方法判斷是否相等就會出錯,在這個範圍之內的就會沒有問題!!!
判斷Integer值相等最好不用==最好使用equals
相關推薦
判斷Integer值相等最好不用==最好使用equals
問題 print 內存地址 ++ i++ 是否 出錯 地址 equal Integer c = 3;Integer d = 3;Integer e = 321;Integer f = 321;System.out.println(c == d);System.out.pri
[Java]判斷Integer值相等最好不用==最好使用equals
ger stat 地址 基本類 不用 true 對象 就是 沒有 測試代碼 Integer c = 3; Integer d = 3; Integer e = 321; Integer f = 321; System
判斷Integer值相等用equals
一些基礎不是很好的,比如說我,在判斷Intger型別值相等時習慣int的判斷而用了==,後來發現竟然有些值明明一樣,但是它們不相等,測試如下: Integer a = 5; Integer b = 5; Integer c = 322; Integer d =
java基礎中Integer值用==和equals判斷相等問題解析
接下來就自己動手寫測試程式驗證,程式碼如下: 1.public class Test{ 2. public static void main(String[] args) { 3. Integer a = new Integer(200); 4. Integer b = n
Integer值判斷是否相等問題
什麽 urn 包裝類 sta 包裝 範圍 nbsp body 比較 昨天在開發中遇到一個問題,定義了兩個Integer變量,暫且定義為Integer a; Integer b; 這兩個值由前端賦值並傳到後臺,前臺傳的是a = 12345, b = 12345, 但我在後
兩個Integer變量a和b,值相等,a==b等於多少?
結果 多少 變量 原因 body 對象 valueof 整數 常用 Integer a = Integer.valueOf(127); Integer b = Integer.valueOf(127); Integer c = Integer.valueOf(128);
Mybatis if判斷Integer型別的值不等於''引發的問題
案例 當傳入的person屬性age的值為0時,mybatis預編譯下面的語句會報錯,因為預編譯的sql為:update person where id = 1 。 <update id="update" parameterType="com.p7.demo.model.P
BigDecimal判斷兩值是否相等
我的情況是從一個物件中獲得一個price(BigDecimal型別),然後判斷是否為0,程式碼如下 if(price1 == null|| price1==BigDecimal.Zero){} 但是我發現每次都不會進入到這個判斷內部,因為這麼寫是錯誤的,並且這個錯誤還是特
第三方頻道管理(最好不用)
Layout佈局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" and
每天一道LeetCode-----判斷陣列中是否存在兩個位置上面的值相等並且下標的差小於某個值
判斷給定陣列中是否存在i和j,使得nums[i] == nums[j]並且j - i <= k 只需要儲存每個數最後出現的下標,當再次遇到這個數時,進行比較,如果滿足條件則返回,否則更新
判斷兩個物件是否相等,hashcode和equals方法的聯絡
1、在集合中考慮兩個物件是否相同的規則是: 第一步:如果hashCode()相等,則進行第二步,否則不相同。 第二步:檢視equals()相等就相等,否則不相同 2、hashcode是物件或者變數通過雜湊演算法計算出來的hash值,不同物件是不一樣的,同一個物件是不變的。
es6 javascript 的Object.is(),判斷兩個值相等
ES5 比較兩個值是否相等,只有兩個運算子:相等運算子(==)和嚴格相等運算子(===)。它們都有缺點,前者會自動轉換資料型別,後者的NaN不等於自身,以及+0等於-0。 JavaScript 缺乏一種運算,在所有環境中
hash_equals 判斷 字串值是否相等
hash_equals 是可防止時序攻擊的字串比較,那麼什麼是時序攻擊呢?比如這段程式碼我們使用 $verifyData['code'] == $request->verification_code 進行比較,那麼兩個字串是從第一
C語言判斷兩個值相等
內建型別比較直接用==判斷 字串比較要用string.h裡的函式strcmp(const char *str1,const char *str2)進行比較string.h裡的函式strcmp(const char *str1,const char *str2)進行比較 s
js表單序列化判斷空值
++ 狀態 開始 提交 count 員工 type 不能 數組 學習javaweb的時候,做了將頁面上的的表單信息添加到數據庫中的練習。提交表單的時候,需要保證每個輸入框、單選按鈕、復選框等都不為空,剛開始的時候挨個獲取控件的值進行判斷是否為空,後來認識了表單序列化這麽一個
如何判斷float值有效
-1 spa span pre 浮點數 意思 isnan str 出了 1 // 一個浮點數是否有效,首先要看其是否是一個數字(_isnan為0),其次還要看其是否超出了表示範圍(_finite為0) 2 // 註意_finite是有限的意思 3
js判斷假值
nbsp pre padding post lock font edit script auto js中的假值:在JavaScript中,false、null、0、空字符串、undefined 和 NaN被稱為假值。 需要註意的是,這種方法字符串類型會返回t
freemarker頁面判斷重複值不輸出
freemarker 介面 table 迴圈的時候判斷是否有重複值出現,如果有不輸出繼續下次迴圈,寫套餐明細用到; <td > <#if (item.itemGroupAccounts?size >0)> &n
編寫程式,在一非遞減的順序表L中,刪除所有值相等的多餘元素。要求時間複雜度O(n),空間複雜度為O(1)
翠花上程式碼: Status delExcrescentValue(SeqList &S){ int flag = 0,val = S.elem[0];//記錄值不等的下標 //printf("%d\n",S.elem[0]); for(int i = 1;i
從《java程式設計基礎》開始學習(第四章),學會了if判斷語句,以及快捷判斷賦值
package 第四章;//fliename:App4_1.java public class App4_1 //定義一個類,名字為App4_1 { public static void main(String[] args) { int a=1,b=2,c=3,max,min; //定義一個整形變數a,b,