Byteのソースコードの調査

バイト

非可变类  final class
实现对比接口 	Comparable
继承于数字类  Number

メンバー変数

	byte  MIN_VALUE  最小值
	byte   MAX_VALUE 最大值
	Class<Byte>    TYPE   类类型
	byte value  初始值
	int SIZE  bit位数
	int BYTES  字节数

静的内部クラス

静的クラスByteCacheキャッシュクラス

Byte cache[]  -128~128的范围

静的コードブロック

static {
    
    
            for(int i = 0; i < cache.length; i++)
                cache[i] = new Byte((byte)(i - 128));  循环初始化 -128 ~ 128
        }

工法

public Byte(String s) throws NumberFormatException {
    
    
        this.value = parseByte(s, 10);
    }

実際、内部メソッドはIngeterを呼び出すことです

メンバー方式

String toString(byte b)値の文字列形式を取得します

public static String toString(byte b) {
    
    
        return Integer.toString((int)b, 10);
    }

IngeterのtoStringメソッドは内部的に呼び出されます

static Byte valueOf(byte b)はラッパークラスオブジェクトを返します

public static Byte valueOf(byte b) {
    
    
        final int offset = 128;
        return ByteCache.cache[(int)b + offset];
    }

キャッシュアレイから直接戻る

byte parseByte(String s、int radix)文字列値変換プロセスバイト値

public static byte parseByte(String s, int radix)
        throws NumberFormatException {
    
    
        int i = Integer.parseInt(s, radix);
        if (i < MIN_VALUE || i > MAX_VALUE)
            throw new NumberFormatException(
                "Value out of range. Value:\"" + s + "\" Radix:" + radix);
        return (byte)i;
    }
radix为可与String转换的最小基数
内部调用Integer的 parseInt方法 
判断越界

int hashCode(byte value)ハッシュコードを取得します

public static int hashCode(byte value) {
    
    
        return (int)value;   数值本身就是hash码
    }

int toUnsignedInt(byte x)をIntタイプに変換

public static int toUnsignedInt(byte x) {
    
    
        return ((int) x) & 0xff;
    }

&0xffは、下位8ビットが変更されず、他のビットが0になるようにするためのものです。

説明エラーがある場合は、メッセージを残して作成者に連絡し、ガイドエラーを回避するために時間内に削除してください。

おすすめ

転載: blog.csdn.net/weixin_43946878/article/details/107935770