亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java Integer及int裝箱拆箱對比

發布時間:2020-10-06 06:43:37 來源:腳本之家 閱讀:155 作者:bf378 欄目:開發技術

示例代碼:

class BoxIntInteger {
 
  public static void main(String[] args) {
 
    Integer a = new Integer(10111);
    int b = 10111;
    boolean equal1 = a == b;
    boolean equal2 = a.equals(b);
    System.out.println(equal1);
    System.out.println(equal2);
  }
}

反編譯字節碼:

public static void main(String args[])
{
  Integer a = new Integer(10111);
  int b = 10111;
  boolean equal1 = a.intValue() == b; 
  boolean equal2 = a.equals(Integer.valueOf(b));
  System.out.println(equal1);
  System.out.println(equal2);    
}

1:可以看出對于Integer與int使用==比較大小的話,優先Integer拆箱。

2: 如果使用equals比較大小的話,則int裝箱。

提示:對于Integer與int之間大小比較優先使用equals比較,否則容易出現空指針,例如:

Integer c= null;
System.out.println(c==1);

原因:由于Integer需要調用intValue進行拆箱,因而空指針。

Integer與Integer必須使用equals方法比較,這個就不必解釋了。但是通常我們可以看先Integer與Integer之間使用==也可以正確比較,原因是:Integer對于-128到127之間的數字在緩存中拿,不是創建新對象。

緩存獲取數據源碼:java.lang.Integer#valueOf(int)

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

西吉县| 定兴县| 古蔺县| 龙泉市| 陆良县| 呼图壁县| 健康| 正宁县| 永寿县| 施秉县| 贞丰县| 玉环县| 青岛市| 屏边| 萍乡市| 黄浦区| 永仁县| 婺源县| 禹城市| 比如县| 集贤县| 阳谷县| 龙里县| 刚察县| 福州市| 营山县| 道孚县| 万全县| 霸州市| 利辛县| 哈尔滨市| 嵊州市| 七台河市| 榆社县| 肃南| 万年县| 钟祥市| 松溪县| 兴城市| 和平区| 金沙县|