在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ java Integer 與int 如何比較內(nèi)容值是否相等?

java Integer 與int 如何比較內(nèi)容值是否相等?

之前是我沒問清楚,我的糾結點在與兩個Integer對象如何判斷相等比較方便,因為前者需要判斷null,

Integer a = null;
Integer b = new Integer(128);
System.out.print(Objects.equals(a,b));//所以用這個方法來判斷相等,就不用判斷null了
回答
編輯回答
久愛她

Integer 緩存-128 ~ 127 之間的數(shù)字,超出范圍外的就只能去new新的對象。
一般都不推薦用==,因為雙等比較的是對象是否同一個地址。
一般用equals()方法,equals比較的是內(nèi)容。

clipboard.png

clipboard.png

2017年2月17日 08:31
編輯回答
傻丟丟

int a=128;
Integer b=xx;

比較: if(Integer.valueOf(a).equals(b)) ,這樣比較可以規(guī)避null問題

2017年1月16日 14:01
編輯回答
毀了心

Integer對象和int使用==進行比較是會使用Integer.intValue進行拆箱,比較的就是int值,返回的是true

2018年9月16日 15:29
編輯回答
青檸

equals(Object)方法啊,專門用來比較對象的。

assert new Integer(500).equals(500)
2018年6月13日 04:34
編輯回答
殘淚

題主第一句得出的結論是錯誤的:
"一般的當Integer的內(nèi)容值超過-128~127的時候,如果與int使用==就會返回false。"

嘗試了一下 int = 128 或者 int = 127,使用==同樣返回true。

    public static void main(String[] args) {
        int a = 127;
        Integer i = new Integer(127);

        System.out.println(a == i);

        int b = 128;
        i = new Integer(128);

        System.out.println(b == i);
    }

第二個 Integer對象是否為空的問題,參考Integer.equals的實現(xiàn) 先判空,在執(zhí)行判斷條件。

2017年8月30日 00:30