一一铅、類結(jié)構(gòu)
二陕贮、構(gòu)造函數(shù)
也是一樣 無(wú)空構(gòu)造,有一個(gè)byte入?yún)?gòu)造和一個(gè)String 入?yún)?gòu)造
從后面的代碼可以看出 String入?yún)⒌氖褂昧薎nteger的方法潘飘,將其轉(zhuǎn)為Int byte 處理
三肮之、Byte中的常量緩存設(shè)計(jì)
// 靜態(tài)私有方法,初始一個(gè)256長(zhǎng)的字節(jié)數(shù)組 內(nèi)容看代碼
private static class ByteCache {
private ByteCache(){}
// 最小值到最大值 加1(中間的0)
static final Byte cache[] = new Byte[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Byte((byte)(i - 128));
}
}
// 初始化之后 就可以從緩存中取值卜录,改方法在類中有大量復(fù)用
public static Byte valueOf(byte b) {
final int offset = 128;
return ByteCache.cache[(int)b + offset];
}
四戈擒、decode函數(shù)
public static Byte decode(String nm) throws NumberFormatException {
int i = Integer.decode(nm);
if (i < MIN_VALUE || i > MAX_VALUE)
throw new NumberFormatException(
"Value " + i + " out of range from input " + nm);
return valueOf((byte)i);
}
這個(gè)估計(jì)很少用,也可以看出更多是為了和Integer保持一致艰毒,提供了把進(jìn)制字符串轉(zhuǎn)Byte的方法筐高,
實(shí)際中也應(yīng)該用Integer的decode方法才能有意義,可以傳入類似“0123” 或者“0xff”或者“#1f2”這種進(jìn)制字符串
將其轉(zhuǎn)化為對(duì)應(yīng)的十進(jìn)制值丑瞧,了解即可柑土,具體應(yīng)該在Integer的實(shí)現(xiàn)中詳細(xì)查看。