Java 裝箱拆箱

#Java 裝箱拆箱java

自動裝箱 把基本類型用它們相應的引用類型包裝起來,使其具備對象的性質。int包裝成Integer、float包裝成Float緩存

Integer num =10;實際上系統執行了 Integer num= Integer.valueOf(10);優化

public static Integer valueOf(int i) {

	//若是在範圍range [-128, 127]便返回指向IntegerCache.cache緩存中已經存在的對象的引用,不然建立Integer新對象。
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

自動拆箱 和裝箱相反,將引用類型的對象簡化成值類型的數據code

int n = num;實際上系統執行了 int i=num.intValue();對象

private final int value;
	
	public int intValue() {
    return value;
	}

java使用該機制是爲了達到最小化數據輸入和輸出的目的,這是一種優化措施,提升效率。包裝器緩存範圍:效率

Boolean: (所有緩存)引用

Byte: (所有緩存)float

Character (<=127 緩存)數據

Integer (-128~127 緩存)static

Short (-128~127 緩存)

Long (-128~127 緩存)

Float (沒有緩存)

Doulbe (沒有緩存)

相關文章
相關標籤/搜索