Byteのソースコード検索
1808 ワード
byteは1バイト、8ビット、-128~127
Byte内部にはbyteクラスのインスタンス作成を維持するためのByteCache内部クラスがあり、オブジェクトのインスタンスをより多重化することができます.クラスには静的finalの配列が宣言され、 は、配列のサイズ−127〜128を静的コードブロックのデフォルトで初期化する. 補足知識は、クラスがデフォルトで呼び出されたとき(ロードされたとき)に1が先に呼び出される場合です.staticの静的ブロック2.次に、構築コードブロック3を呼び出す.初期化メンバー変数を実行します.オブジェクトInner*のデフォルトjvmはメンバー変数に0またはnullの値を割り当てます.クラスのメンバー変数は、値を割り当てるかどうかにかかわらず、さまざまな初期化の前にバイナリ0またはnullに設定されています.
Byte内部にはbyteクラスのインスタンス作成を維持するためのByteCache内部クラスがあり、オブジェクトのインスタンスをより多重化することができます.
Byte cache[] = new Byte[-(-128) + 127 + 1]; // 256 ( )
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Byte((byte)(i - 128));// (-128 127)
}
私たちが呼び出した時
public static Byte valueOf(byte b) {// byte, -127 128,
final int offset = 128;
return ByteCache.cache[(int)b + offset];// 128, 256 ,
}
static {
System.out.println("static");
}
{
System.out.println("{}");
}
private Inner i = new Inner(); //a private member
class Inner {
public Inner() {
System.out.println(" ");
}
}
印刷static
{}
小テスト:
Byte aByte1 = Byte.valueOf((byte) 11111);
Byte aByte3 = Byte.valueOf((byte) 11111);
// 2 , ,
Byte aByte2 = new Byte("103");// , aByte1 aByte3
System.out.println(aByte1==aByte2);
System.out.println(aByte1.equals(aByte2));
aByte2 = Byte.valueOf((byte) 11111);
System.out.println(aByte1);
System.out.println(aByte1==aByte2);
System.out.println(aByte1==aByte3);
System.out.println(aByte1.equals(aByte2));
結果:
false
true
103
true
true
true
==比較はオブジェクトの参照であり,equalsはオブジェクトの内容を比較する.