「[B@1ef9157」: バイナリかアドレスか?
Java でバイト配列を操作する場合、「[ B@ プレフィックス」をバイト配列を印刷するときに使用します。一見ランダムな文字列ではなく、配列の実際の内容が表示されると予想されるため、これは混乱を招く可能性があります。
説明
「[B@ prefix」はバイト配列の内容を表すものではありません。配列のオブジェクトIDです。この ID はメモリ内の配列を識別します。
オブジェクト ID の構造
オブジェクト ID は次のもので構成されます:
バイト配列の内容を印刷
目的はバイト配列の実際の値を印刷することなので、バイトを印刷可能な形式に具体的に変換するメソッドを使用する必要があります。たとえば、byteArrayToString() メソッドを使用できます。
<code class="java">byte[] in = new byte[] { 1, 2, 3, -1, -2, -3 }; System.out.println(byteArrayToString(in));</code>
byteArrayToString() メソッドは、バイト配列を 16 進文字の文字列に変換して、読みやすくします。
JNI 型の命名法
「[B@ プレフィックス」は、JNI (Java Native Interface) 型の命名法の一部です。この命名法は、ネイティブ コードで Java 型を識別するために使用されます:
JNI タイプの命名規則の詳細については、「公式 JNI ドキュメント。
以上がJava バイト配列が内容ではなく \"[B@1ef9157\" として印刷されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。