Java でバイト配列を出力するときの「[B@1ef9157」」は何を意味しますか?

Barbara Streisand
リリース: 2024-10-28 22:05:02
オリジナル
894 人が閲覧しました

What does

Java の「[B@1ef9157」の背後にある意味を解読する

Java を使用する場合、開発者は「[」のような独特の接頭辞に遭遇することがあります。バイト配列を印刷しようとすると、B@1ef9157" が表示されます。これらの文字列は不可解に見えるかもしれませんが、配列の構造と内容に関する重要な情報が含まれています。

プレフィックスの構成

プレフィックス "[B@1ef9157" は次のとおりです。

  • [ は、オブジェクトが配列であることを示します。
  • B は、配列にバイトが含まれていることを示します。 .
  • @ は、タイプ (「B」) を ID ハッシュコードから分離します。
  • 1ef9157 は、ID ハッシュコードまたはオブジェクト ID を表します。
  • >

プレフィックスの解釈

プレフィックスだけではバイト配列の内容はわかりません。これは、オブジェクトがバイト配列であることを示し、その一意の識別子を提供するだけです。配列に格納されている実際の値は、この形式では表示されません。

配列の内容の印刷

バイト配列の実際の内容を表示するには、さまざまな方法が使用できます。 。 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
配列 [
メソッド署名 (
Type Representation
Byte B
Character C
Double D
Float F
Integer I
Long J
Class L*fully-qualified-class*;;
Short S
Boolean Z
Array [
Method Signature (argument types;)return-type
引数の型;)戻り値の型

以上がJava でバイト配列を出力するときの「[B@1ef9157」」は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!