九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
關(guān)于Integer大小比較的問題
關(guān)于Integer大小比較的問題
昨天跟朋友一起吃飯,他說到兩個Integer類型值比較是否相等的問題。經(jīng)理也在這里把java的Integer值比較的問題拿出來說一說。因為在面試的時候這個是經(jīng)常遇到的問題。
首先給大家看一個例子:
1
public class Test {
2
3
    /**
4
     * 關(guān)于Integer大小比較問題
5
     * @author 經(jīng)理
6
     */
7
    public static void main(String[] args) {
8
        Integer a = 10;
9
        Integer b = 10;
10
        System.out.println("a==b : " + String.valueOf(a==b));
11
        System.out.println("a.equals(b) : " + String.valueOf(a.equals(b)));
12
    }
13
}
14
運行一下,在控制臺得到的結(jié)果是這樣的
a==b : true
a.equals(b) : true
當是當我們變換一下值
1
public class Test {
2
3
    /**
4
     * 關(guān)于Integer大小比較問題
5
     * @author 經(jīng)理
6
     */
7
    public static void main(String[] args) {
8
        Integer a = 1000;
9
        Integer b = 1000;
10
        System.out.println("a==b : " + String.valueOf(a==b));
11
        System.out.println("a.equals(b) : " + String.valueOf(a.equals(b)));
12
    }
13
}
運行一下,控制臺的結(jié)果又是
a==b : false
a.equals(b) : true
這是什么原因呢?我當時也有點犯糊涂。有點沖動就直接開源碼看了。
實際上在我們用Integer a = 數(shù)字;來賦值的時候Integer這個類是調(diào)用的public static Integer valueOf(int i)這個方法。
1
public static Integer valueOf(int i) {
2
        if(i >= -128 && i <= IntegerCache.high)
3
            return IntegerCache.cache[i + 128];
4
        else
5
            return new Integer(i);
6
    }
我們來看看ValueOf(int i)的代碼,可以發(fā)現(xiàn)他對傳入?yún)?shù)i做了一個if判斷。在-128<=i<=127的時候是直接用的int原始數(shù)據(jù)類型,而超出了這個范圍則是new了一個對象。我們知道"=="符號在比較對象的時候是比較的內(nèi)存地址,而對于原始數(shù)據(jù)類型是直接比對的數(shù)據(jù)值。那么這個問題就解決了。
至于為什么用int型的時候值會在-128<=i<=127范圍呢呢?我們知道八位二進制的表示的范圍正好就是-128到127。大概就是因為這吧。
把平時出現(xiàn)的問題記錄下來,自己就可以一點一點進步了。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java - 工具類1(包裝類) July 10,2019
面試官:你都工作兩年了,這么基礎(chǔ)的題目都能做錯,虧你還做了那么多項目
吊打面試官系列:說說Integer緩存范圍
java 進制轉(zhuǎn)換
java中字符類型轉(zhuǎn)換
Java中equals和==的區(qū)別
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服