91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么判斷Integer的值是否相等

發布時間:2021-02-09 18:07:34 來源:億速云 閱讀:276 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關怎么判斷Integer的值是否相等,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

面試中經常遇到一個問題:

Integer a = 10;
Integer b = 10; 
System.out.println(a == b); 
a = 1000;
b = 1000; 
System.out.println(a == b);

兩個打印值分別是多少?

詳解:true;false;

默認IntegerCache.low 是-128,Integer.high是127,如果在這個區間內,他就會把變量i當做一個變量,放到內存中;但如果不在這個范圍內,就會去new一個Integer對象,在這個題目中,10在范圍內,所以直接比較其值;1000不在范圍內,所以jdk幫我new了兩個實例,這樣在用==,肯定是false。

補充:Integer值判斷是否相等問題 要用equals判斷不要用“==”判斷

昨天在開發中遇到一個問題,定義了兩個Integer變量,暫且定義為Integer a; Integer b;

這兩個值由前端賦值并傳到后臺,前臺傳的是a = 12345, b = 12345, 但我在后臺比較的時候 if (a == b),卻返回false,好無語啊,不都是123嗎?為什么返回false,后來改為equals(),返回true,但其中的有些端倪還不太清楚,現總結下:

我們知道Integer是int的包裝類,在jdk1.5以上,可以實現自動裝箱拆箱,就是jdk里面會自動幫我們轉換,不需要我們手動去強轉,所以我們經常在這兩種類型中隨意寫,平時也沒什么注意

但Integer他是對象,我們知道 == 比較的是堆中的地址,但有個奇怪的事是, 如果 Integer a = 123, Integer b = 123,可以返回true,但如果Integer a = 12345, Integer b = 12345,返回false,這就是jdk的東西,我們看下Integer的源碼

public static Integer valueOf(int i) {
 if (i >= IntegerCache.low && i <= IntegerCache.high)
  return IntegerCache.cache[i + (-IntegerCache.low)];
 return new Integer(i);
}

默認IntegerCache.low 是-127,Integer.high是128,如果在這個區間內,他就會把變量i當做一個變量,放到內存中;但如果不在這個范圍內,就會去new一個Integer對象,

而我在代碼中,兩個Integer值都不在這個范圍內,所以jdk幫我new了兩個實例,這樣在用==,肯定是false。

所以如果要比較Integer的值,比較靠譜的是通過Integer.intValue();這樣出來的就是int值,就可以直接比較了;或者equals()比較

Integer的底層 equals是這樣定義的 先拆箱為int再來比較

public boolean equals(Object obj) {
  if (obj instanceof Integer) {
   return value == ((Integer)obj).intValue();
  }
  return false;
 }

上述就是小編為大家分享的怎么判斷Integer的值是否相等了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白玉县| 仲巴县| 房山区| 贵港市| 汨罗市| 桦甸市| 孝义市| 南宫市| 古蔺县| 桂阳县| 栾城县| 上饶市| 台中市| 固始县| 威信县| 长治市| 太仓市| 鹤峰县| 郴州市| 黄平县| 区。| 岗巴县| 乌兰县| 旬阳县| 陇南市| 喜德县| 茌平县| 谢通门县| 同仁县| 潮安县| 通榆县| 寻乌县| 乌恰县| 宁乡县| 马公市| 柘城县| 彭阳县| 宜城市| 县级市| 庆安县| 大悟县|