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

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么

Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么

發布時間:2021-11-08 10:31:05 來源:億速云 閱讀:134 作者:iii 欄目:開發技術

本篇內容主要講解“Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么”吧!

Int

Int是Java八種基本數據類型之一,一般大小為4字節32位,取值范圍為2-31—231。兩個Int類型變量用“==”比較的是值的大小。

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        int a = 100;
        int b = 100;
        System.out.println(a == b);//true
    }
}

Integer和Integer.valueOf()

將Int值賦給Integer變量,系統會自動將這個Int值封裝成一個Integer對象。
比如:Integer a = 100;實際上的操作是:Integer a = Integer.valueOf(100);
以下是valueOf()的源碼

Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么

注意:這里Integer.valueOf(),當Int值的范圍在-128-127之間時,會通過一個IntegerCache緩存來創建Integer對象;當Int值不在該范圍時,直接調用new Integer()來創建對象,因此會出現以下的情況
(1)Integer a = 100; Integer b = 100; a==b結果為true,因為這兩個Integer變量引用的是緩存中的同一個Integer對象 ;
(2)Integer c = 200; Integer d = 200; a==b結果為false,因為a和b是通過new Integer() 創建的兩個不同對象。

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        Integer a = 100;
        Integer b = 100;
        Integer c = 200;
        Integer d = 200;
        System.out.println(a == b);//true
        System.out.println(c == d);//false
    }
}

new Integer()

new Integer()每次都會創建新的對象,==比較的是兩個對象的內存地址

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        Integer a = new Integer(100);
        Integer b = new Integer(100);
        System.out.println(a == b);//false
    }
}

三者之間的比較

(1)不管是new創建的Integer對象,還是通過直接賦值Int值創建的Integer對象,它們與Int類型變量通過“==”進行比較時都會自動拆箱變成Int類型,所以Integer對象和Int變量比較的是內容大小。

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        int a = 100;
        Integer b = 100;//等價于b=Integer.valueOf(100);
        Integer c = new Integer(100);
        System.out.println(a == b);//true
        System.out.println(a == c);//true
    }
}

(2)new創建的Integer對象和直接賦Int值創建的Integer對象使用==比較的是它們的內存地址。

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        Integer b = 100;//等價于b=Integer.valueOf(100);
        Integer c = new Integer(100);
        System.out.println(b == c);//false
    }
}

(3)賦Int值創建的Integer對象比較:
當Int值在-128-127之間時,兩個Integer變量引用的是IntegerCache中的同一個對象,內存地址相同,因此==的結果為true;
當Int值不在以上范圍時,兩個Integer對象都是通過new創建的,內存地址不同,因此==的結果為false

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        Integer a = 100;
        Integer b = 100;
        Integer c = 200;
        Integer d = 200;
        Integer f = new Integer(100);
        System.out.println(a == b);//true
        System.out.println(c == d);//false
        System.out.println(a == f);//false
    }
}

一個金典面試題

package com.company.algorithm;

public class Main {
    public static void main(String[] args) {
        Integer a = 49;
        int b = 49;
        Integer c = Integer.valueOf(49);
        Integer d = new Integer(49);
        System.out.println(a == b);//true
        System.out.println(a == c);//true
        System.out.println(b == c);//true
        System.out.println(c == d);//false
    }
}

到此,相信大家對“Java中Int、Integer、Integer.valueOf()、new Integer()之間的區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

昌黎县| 兴安县| 昆山市| 体育| 涟水县| 招远市| 光山县| 泰来县| 镶黄旗| 栾城县| 涞源县| 甘肃省| 庆城县| 泰顺县| 邵武市| 邯郸县| 栖霞市| 沙坪坝区| 南宫市| 东阳市| 余庆县| 红桥区| 丰镇市| 湖州市| 梅河口市| 巫溪县| 德江县| 玉门市| 丹寨县| 社旗县| 平顶山市| 博爱县| 五莲县| 浦东新区| 多伦县| 曲阳县| 通江县| 余姚市| 迭部县| 遂平县| 关岭|