「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > \"[B\\@\" エニグマ: Java バイト配列表記法を理解する) とは何ですか?

\"[B\\@\" エニグマ: Java バイト配列表記法を理解する) とは何ですか?

2024 年 11 月 12 日に公開
ブラウズ:422

 What is the \

「[B\@」の謎に対処する: Java バイト配列表記法を理解する

次のような場合に遭遇する独特の「[B\@」表現Java でのバイト配列の出力は、開発者をしばしば困惑させてきました。それは何を意味しますか?またその意味をどのように解読できますか?

象徴性の解読

表記「[B@」はバイト配列の内容の 16 進表現ではありませんむしろオブジェクト記述子です。各コンポーネントは特定の側面を表します。

  • [ : 配列タイプを示します。
  • B : バイト データ タイプを示します。
  • @ : 型識別子とオブジェクトを区切ります。 ID.
  • 16 進数 : 一意のオブジェクト ID またはハッシュコード。

配列の内容を効果的に印刷する

Toオブジェクト ID ではなく、バイト配列の実際の内容を表示するには、さまざまな方法を使用できます。メソッド:

  • 明示的な反復と変換:

    byte[] in = {1, 2, 3, -1, -2, -3};
    for (byte b : in) {
    System.out.print(String.valueOf(b)   " ");
    }
  • 16 進文字列変換:

    System.out.println(Base64.getEncoder().encodeToString(in));
  • カスタム文字列変換:

    String byteArrayToString(byte[] in) {
    char out[] = new char[in.length * 2];
    for (int i = 0; i >> 4) & 15);
      out[i * 2   1] = "0123456789ABCDEF".charAt(in[i] & 15);
    }
    return new String(out);
    }

JNI 命名法について

「[B\@」表記は、JNI (Java ネイティブ) で型を記述するためのより大きなシステムの一部です。インタフェース)。完全なリストは次のとおりです:

  • B - byte
  • C - char
  • D ] - ダブル
  • F - float
  • I - int
  • J - long
  • L完全修飾-class;;** - クラス名
  • S - short
  • Z - ブール値
  • [ - 配列次元
  • *(引数タイプ)return-type - メソッド署名

この表記法を理解すると、Java の複雑な世界をナビゲートできるようになります。自信を持ってデータを表現します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3