Java の「[B@1ef9157」の背後にある意味を解読する
Java を使用する場合、開発者は「[」のような独特の接頭辞に遭遇することがあります。バイト配列を印刷しようとすると、B@1ef9157" が表示されます。これらの文字列は不可解に見えるかもしれませんが、配列の構造と内容に関する重要な情報が含まれています。
プレフィックスの構成
プレフィックス "[B@1ef9157" は次のとおりです。
プレフィックスの解釈
プレフィックスだけではバイト配列の内容はわかりません。これは、オブジェクトがバイト配列であることを示し、その一意の識別子を提供するだけです。配列に格納されている実際の値は、この形式では表示されません。
配列の内容の印刷
バイト配列の実際の内容を表示するには、さまざまな方法が使用できます。 。 1 つの手法では、バイト値を 16 進文字に変換します。
<code class="java">byte[] in = new byte[] { 1, 2, 3, -1, -2, -3 }; System.out.println(byteArrayToString(in)); String byteArrayToString(byte[] in) { char out[] = new char[in.length * 2]; for (int i = 0; i < in.length; i++) { out[i * 2] = "0123456789ABCDEF".charAt((in[i] >>> 4) & 15); out[i * 2 + 1] = "0123456789ABCDEF".charAt(in[i] & 15); } return new String(out); }</code>
追加情報
Java で使用される型命名法の包括的なリストについては、JNI ドキュメントを参照してください。 。次の表は、一般的なタイプをまとめたものです:
Type | Representation | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
バイト | B | ||||||||||||||||||||||||
文字 | C | ||||||||||||||||||||||||
倍精度 | D | ||||||||||||||||||||||||
浮動小数点数 | F | ||||||||||||||||||||||||
整数 | I | ||||||||||||||||||||||||
ロング | J | ||||||||||||||||||||||||
クラス | L *完全修飾クラス*;; | ||||||||||||||||||||||||
短い | S | ||||||||||||||||||||||||
ブール値 | Z | ||||||||||||||||||||||||
配列 | [ | ||||||||||||||||||||||||
メソッド署名 | (
|
以上がJava でバイト配列を出力するときの「[B@1ef9157」」は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。