Java中int與Integer的區別

轉自https://www.cnblogs.com/guodongdidi/p/6953217.htmlhtml

import java.lang.Integer;

public class intDemo{
    public static void main(String[] args){
        
        boolean eq = (int.class == Integer.class);
        System.out.println(String.format("int.class與Integer.class相等?%b",eq));
        
        //由於new生成的是兩個對象,其內存地址不一樣,
        //因此兩個經過new生成的Integer變量永遠是不相等的。
        Integer i_new_100 = new Integer(100);
        Integer j_new_100 = new Integer(100);
        System.out.println(String.format("值相同的兩個new生成的Integer相等?%b",i_new_100 == j_new_100));
        
        //Integer和基本數據類型int比較時,java會自動拆包裝爲int,
        //而後進行比較,實際上就變爲兩個int變量的比較。
        Integer i_integer = new Integer(100);
        int j_int = 100;
        System.out.println(String.format("值相同的int與Integer對象相等?%b",i_integer == j_int));
        
        //兩個非new生成的Integer對象進行比較,
        //若是兩個變量的值在區間-128 ~ 127之間,
        //則比較結果爲true
        //不然比較結果爲false
        Integer i_100 = 100;
        Integer j_100 = 100;
        System.out.println(String.format("兩個值爲100的非new生成Integer對象相等?%b",i_100 == j_100));
        Integer i_128 = 128;
        Integer j_128 = 128;
        System.out.println(String.format("兩個值爲100的非new生成Integer對象相等?%b",i_128 == j_128));
        
    }
}
相關文章
相關標籤/搜索