Java : Byte - API使用例

Byte (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。


概要

Byteクラスは、プリミティブ型byteの値をオブジェクトにラップします。 Byte型のオブジェクトには、型がbyteの単一フィールドが含まれます。

クラス構成

Byte は、プリミティブ型 byte のラッパークラスです。

byteObject ではないので、そのままでは List などのコレクションに追加できません。
そんなときは、 Byteクラスを使って byte をラップすると追加が可能となります。

// コンパイルエラー
final var list = new ArrayList<byte>();
// コンパイルOK
final var list = new ArrayList<Byte>();
list.add((byte) 1);
list.add((byte) 2);
list.add((byte) 3);

System.out.println(list); // [1, 2, 3]

他には、

  • byte の最大値(Byte.MAX_VALUE)、最小値(Byte.MIN_VALUE)
  • 文字列から byte への変換 (Byte.parseByte)

などなど、便利なメソッドがそろっています。

関連記事:プリミティブ型 (基本データ型)


フィールド

static final int BYTES

2の補数バイナリ形式でbyte値を表すために使用されるバイト数。

System.out.println(Byte.BYTES); // 1

static final byte MAX_VALUE

byteに設定可能な最大値27-1を保持する定数。

System.out.println(Byte.MAX_VALUE); // 127
System.out.println("0x%x".formatted(Byte.MAX_VALUE)); // 0x7f

static final byte MIN_VALUE

byteに設定可能な最小値 -27を保持する定数。

System.out.println(Byte.MIN_VALUE); // -128
System.out.println("0x%x".formatted(Byte.MIN_VALUE)); // 0x80

static final int SIZE

2の補数バイナリ形式でbyte値を表すのに使用されるビット数。

System.out.println(Byte.SIZE); // 8

static final Class<Byte> TYPE

プリミティブ型byteを表すClassインスタンス。

System.out.println(Byte.TYPE.getSimpleName()); // "byte"
System.out.println(Byte.TYPE.isPrimitive()); // true

コンストラクタ

Byte (byte value)

削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。 このコンストラクタを使用することはほとんどありません。

非推奨 です。
代わりに valueOf(byte b) を使います。

Byte (String s)

削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。 このコンストラクタを使用することはほとんどありません。

非推奨 です。
代わりに valueOf(String s) を使います。

メソッド

byte byteValue ()

このByteの値をbyteとして返します。

final var value = Byte.valueOf((byte) 123).byteValue();
System.out.println(value); // 123
final var value = Byte.valueOf((byte) -45).byteValue();
System.out.println(value); // -45

static int compare (byte x, byte y)

2つのbyte値を数値的に比較します。

System.out.println(Byte.compare((byte) 0, (byte) 0)); // 0
System.out.println(Byte.compare((byte) 0, (byte) 1)); // -1
System.out.println(Byte.compare((byte) 1, (byte) 0)); // 1
System.out.println(Byte.compare((byte) 1, (byte) -2)); // 3
System.out.println(Byte.compare((byte) -100, (byte) -2)); // -98

int compareTo (Byte anotherByte)

2つのByteオブジェクトを数値的に比較します。

final var value1 = Byte.valueOf((byte) 0);
final var value2 = Byte.valueOf((byte) 0);
System.out.println(value1.compareTo(value2)); // 0
final var value1 = Byte.valueOf((byte) 0);
final var value2 = Byte.valueOf((byte) 1);
System.out.println(value1.compareTo(value2)); // -1
final var value1 = Byte.valueOf((byte) 1);
final var value2 = Byte.valueOf((byte) 0);
System.out.println(value1.compareTo(value2)); // 1
final var value1 = Byte.valueOf((byte) 1);
final var value2 = Byte.valueOf((byte) -2);
System.out.println(value1.compareTo(value2)); // 3
final var value1 = Byte.valueOf((byte) -100);
final var value2 = Byte.valueOf((byte) -2);
System.out.println(value1.compareTo(value2)); // -98

static int compareUnsigned (byte x, byte y)

値を数値として扱う2つのbyte値を符号なしとして比較します。

"符号なしとして比較" について補足

  • byte のマイナス値は最上位ビットを 1 (0x80)として判断しています。
    その最上位ビットをマイナス値の判定としては使わずに、そのままプラス値として計算します。

    符号なし表現でイメージしやすいのは、16進数表記でしょうか。
    例えば -1 は 0xff、1 は 0x1 となります。
    これを compareUnsigned で比較すると、-1 (0xff) のほうが大きいとみなされます。

final byte value1 = 0;
final byte value2 = 0;
System.out.println("0x%x".formatted(value1)); // "0x0"
System.out.println("0x%x".formatted(value2)); // "0x0"

System.out.println(Byte.compare(value1, value2)); // 0
System.out.println(Byte.compareUnsigned(value1, value2)); // 0
final byte value1 = 5;
final byte value2 = 10;
System.out.println("0x%x".formatted(value1)); // "0x5"
System.out.println("0x%x".formatted(value2)); // "0xa"

System.out.println(Byte.compare(value1, value2)); // -5
System.out.println(Byte.compareUnsigned(value1, value2)); // -5
final byte value1 = -1;
final byte value2 = 1;
System.out.println("0x%x".formatted(value1)); // "0xff"
System.out.println("0x%x".formatted(value2)); // "0x1"

System.out.println(Byte.compare(value1, value2)); // -2
System.out.println(Byte.compareUnsigned(value1, value2)); // 254
final byte value1 = -1;
final byte value2 = -2;
System.out.println("0x%x".formatted(value1)); // "0xff"
System.out.println("0x%x".formatted(value2)); // "0xfe"

System.out.println(Byte.compare(value1, value2)); // 1
System.out.println(Byte.compareUnsigned(value1, value2)); // 1
final byte value1 = Byte.MAX_VALUE;
final byte value2 = Byte.MIN_VALUE;
System.out.println("0x%x".formatted(value1)); // "0x7f"
System.out.println("0x%x".formatted(value2)); // "0x80"

System.out.println(Byte.compare(value1, value2)); // 255
System.out.println(Byte.compareUnsigned(value1, value2)); // -1

static Byte decode (String nm)

StringをByteにデコードします。

// 10進数
System.out.println(Byte.decode("0")); // 0
System.out.println(Byte.decode("12")); // 12
System.out.println(Byte.decode("+45")); // 45
System.out.println(Byte.decode("-78")); // -78

//Byte.decode("xyz"); // NumberFormatException
// 16進数
final var ret1 = Byte.decode("0xf");
System.out.println(ret1); // 15
System.out.println("%x".formatted(ret1)); // "f"

final var ret2 = Byte.decode("-0xf");
System.out.println(ret2); // -15
System.out.println("%x".formatted(ret2)); // "f1"

final var ret3 = Byte.decode("#5a");
System.out.println(ret3); // 90
System.out.println("%x".formatted(ret3)); // "5a"

final var ret4 = Byte.decode("0X7f");
System.out.println(ret4); // 127
System.out.println("%x".formatted(ret4)); // "7f"
// 8進数
final var ret1 = Byte.decode("012");
System.out.println(ret1); // 10
System.out.println("%o".formatted(ret1)); // "12"

final var ret2 = Byte.decode("-012");
System.out.println(ret2); // -10
System.out.println("%o".formatted(ret2)); // "366"

Optional<DynamicConstantDesc<Byte>> describeConstable ()

このインスタンスの名目記述子を含むOptionalを返します。

final var ret = Byte.valueOf((byte) 123).describeConstable();

// Optional[DynamicConstantDesc[ConstantBootstraps::explicitCast(123)byte]]
System.out.println(ret);

double doubleValue ()

このByteの拡張プリミティブ変換後の値をdoubleとして返します。

final var value = Byte.valueOf((byte) 12).doubleValue();
System.out.println(value); // 12.0
final var value = Byte.valueOf((byte) -34).doubleValue();
System.out.println(value); // -34.0
final var value = Byte.valueOf(Byte.MAX_VALUE).doubleValue();
System.out.println(value); // 127.0
final var value = Byte.valueOf(Byte.MIN_VALUE).doubleValue();
System.out.println(value); // -128.0

boolean equals (Object obj)

このオブジェクトを指定されたオブジェクトと比較します。

final var value1 = Byte.valueOf((byte) 100);
final var value2 = Byte.valueOf((byte) 100);
final var value3 = Byte.valueOf((byte) -99);

System.out.println(value1.equals((byte) 100)); // true
System.out.println(value1.equals(value2)); // true
System.out.println(value1.equals(value3)); // false
final var value1 = Byte.valueOf((byte) 100);
final var value2 = Integer.valueOf(100);

// 型が違う場合はfalse
System.out.println(value1.equals(100)); // false
System.out.println(value1.equals(value2)); // false

float floatValue ()

このByteの拡張プリミティブ変換後の値をfloatとして返します。

final var value = Byte.valueOf((byte) 12).floatValue();
System.out.println(value); // 12.0
final var value = Byte.valueOf((byte) -34).floatValue();
System.out.println(value); // -34.0
final var value = Byte.valueOf(Byte.MAX_VALUE).floatValue();
System.out.println(value); // 127.0
final var value = Byte.valueOf(Byte.MIN_VALUE).floatValue();
System.out.println(value); // -128.0

int hashCode ()

このByteのハッシュ・コード(intValue()を呼び出した場合の結果と等しくなる)を返します。

System.out.println(Byte.valueOf((byte) 0).hashCode()); // 0
System.out.println(Byte.valueOf((byte) 1).hashCode()); // 1
System.out.println(Byte.valueOf((byte) 2).hashCode()); // 2
System.out.println(Byte.valueOf((byte) -45).hashCode()); // -45

System.out.println(Byte.valueOf(Byte.MAX_VALUE).hashCode()); // 127
System.out.println(Byte.valueOf(Byte.MIN_VALUE).hashCode()); // -128

static int hashCode (byte value)

Byte.hashCode()との互換性がある、byte値のハッシュ・コードを返します。

System.out.println(Byte.hashCode((byte) 0)); // 0
System.out.println(Byte.hashCode((byte) 1)); // 1
System.out.println(Byte.hashCode((byte) 2)); // 2
System.out.println(Byte.hashCode((byte) -45)); // -45

System.out.println(Byte.hashCode(Byte.MAX_VALUE)); // 127
System.out.println(Byte.hashCode(Byte.MIN_VALUE)); // -128

int intValue ()

このByteの拡張プリミティブ変換後の値をintとして返します。

final var value = Byte.valueOf((byte) 12).intValue();
System.out.println(value); // 12
final var value = Byte.valueOf((byte) -34).intValue();
System.out.println(value); // -34
final var value = Byte.valueOf(Byte.MAX_VALUE).intValue();
System.out.println(value); // 127
final var value = Byte.valueOf(Byte.MIN_VALUE).intValue();
System.out.println(value); // -128

long longValue ()

このByteの拡張プリミティブ変換後の値をlongとして返します。

final var value = Byte.valueOf((byte) 12).longValue();
System.out.println(value); // 12
final var value = Byte.valueOf((byte) -34).longValue();
System.out.println(value); // -34
final var value = Byte.valueOf(Byte.MAX_VALUE).longValue();
System.out.println(value); // 127
final var value = Byte.valueOf(Byte.MIN_VALUE).longValue();
System.out.println(value); // -128

static byte parseByte (String s)

文字列の引数を符号付き10進数 byteとして構文解析します。

System.out.println(Byte.parseByte("0")); // 0
System.out.println(Byte.parseByte("123")); // 123
System.out.println(Byte.parseByte("+45")); // 45
System.out.println(Byte.parseByte("-78")); // -78

System.out.println(Byte.parseByte("127")); // 127
//Byte.parseByte("128"); // NumberFormatException

System.out.println(Byte.parseByte("-128")); // -128
//Byte.parseByte("-129"); // NumberFormatException

static byte parseByte (String s, int radix)

2番目の引数に指定された基数をもとにして、文字列の引数を符号付きbyteとして構文解析します。

System.out.println(Byte.parseByte("0", 10)); // 0
System.out.println(Byte.parseByte("12", 10)); // 12
System.out.println(Byte.parseByte("+42", 10)); // 42
System.out.println(Byte.parseByte("-0", 10)); // 0
System.out.println(Byte.parseByte("-F", 16)); // -15
System.out.println(Byte.parseByte("1100110", 2)); // 102
System.out.println(Byte.parseByte("127", 10)); // 127
System.out.println(Byte.parseByte("-128", 10)); // -128

//Byte.parseByte("128", 10); // NumberFormatException
//Byte.parseByte("99", 8); // NumberFormatException
//Byte.parseByte("1K", 10); // NumberFormatException

System.out.println(Byte.parseByte("1K", 27)); // 47

short shortValue ()

このByteの拡張プリミティブ変換後の値をshortとして返します。

final var value = Byte.valueOf((byte) 12).shortValue();
System.out.println(value); // 12
final var value = Byte.valueOf((byte) -34).shortValue();
System.out.println(value); // -34
final var value = Byte.valueOf(Byte.MAX_VALUE).shortValue();
System.out.println(value); // 127
final var value = Byte.valueOf(Byte.MIN_VALUE).shortValue();
System.out.println(value); // -128

String toString ()

このByteの値を表すStringオブジェクトを返します。

final var ret1 = Byte.valueOf((byte) 123).toString();
System.out.println(ret1); // "123"

final var ret2 = Byte.valueOf((byte) -45).toString();
System.out.println(ret2); // "-45"

static String toString (byte b)

指定されたbyteを表す新しいStringオブジェクトを返します。

final var ret1 = Byte.toString((byte) 123);
System.out.println(ret1); // "123"

final var ret2 = Byte.toString((byte) -45);
System.out.println(ret2); // "-45"

System.out.println(Byte.toString(Byte.MAX_VALUE)); // "127"
System.out.println(Byte.toString(Byte.MIN_VALUE)); // "-128"

static int toUnsignedInt (byte x)

符号なし変換によって、その引数をintに変換します。

final byte x = 15;
System.out.println("%x".formatted(x)); // "f"

final var ret = Byte.toUnsignedInt(x);
System.out.println(ret); // 15
final byte x = -1;
System.out.println("%x".formatted(x)); // "ff"

final var ret = Byte.toUnsignedInt(x);
System.out.println(ret); // 255

static long toUnsignedLong (byte x)

符号なし変換によって、その引数をlongに変換します。

final byte x = 15;
System.out.println("%x".formatted(x)); // "f"

final var ret = Byte.toUnsignedLong(x);
System.out.println(ret); // 15
final byte x = -1;
System.out.println("%x".formatted(x)); // "ff"

final var ret = Byte.toUnsignedLong(x);
System.out.println(ret); // 255

static Byte valueOf (byte b)

指定されたbyte値を表すByteインスタンスを返します。

System.out.println(Byte.valueOf((byte) 0)); // 0
System.out.println(Byte.valueOf((byte) 1)); // 1
System.out.println(Byte.valueOf((byte) 2)); // 2
System.out.println(Byte.valueOf((byte) 100)); // 100

System.out.println(Byte.valueOf((byte) -1)); // -1
System.out.println(Byte.valueOf((byte) -2)); // -2
System.out.println(Byte.valueOf((byte) -3)); // -3

System.out.println(Byte.valueOf(Byte.MAX_VALUE)); // 127
System.out.println(Byte.valueOf(Byte.MIN_VALUE)); // -128

static Byte valueOf (String s)

特定のStringにより指定された値を保持するByteオブジェクトを返します。

System.out.println(Byte.valueOf("0")); // 0
System.out.println(Byte.valueOf("123")); // 123
System.out.println(Byte.valueOf("+45")); // 45
System.out.println(Byte.valueOf("-78")); // -78

System.out.println(Byte.valueOf("127")); // 127
//Byte.valueOf("128"); // NumberFormatException

System.out.println(Byte.parseByte("-128")); // -128
//Byte.valueOf("-129"); // NumberFormatException

static Byte valueOf (String s, int radix)

2番目の引数で指定された基数を使用した構文解析時に、指定されたStringから抽出された値を保持するByteオブジェクトを返します。

System.out.println(Byte.valueOf("0", 10)); // 0
System.out.println(Byte.valueOf("12", 10)); // 12
System.out.println(Byte.valueOf("+42", 10)); // 42
System.out.println(Byte.valueOf("-0", 10)); // 0
System.out.println(Byte.valueOf("-F", 16)); // -15
System.out.println(Byte.valueOf("1100110", 2)); // 102
System.out.println(Byte.valueOf("127", 10)); // 127
System.out.println(Byte.valueOf("-128", 10)); // -128

//Byte.valueOf("128", 10); // NumberFormatException
//Byte.valueOf("99", 8); // NumberFormatException
//Byte.valueOf("1K", 10); // NumberFormatException

System.out.println(Byte.valueOf("1K", 27)); // 47

関連記事

ページの先頭へ