」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 什麼是「[B\\@」之謎:理解 Java 位元組數組表示法?

什麼是「[B\\@」之謎:理解 Java 位元組數組表示法?

發佈於2024-11-12
瀏覽:997

 What is the \

解決「[B\@」之謎:理解Java位元組數組表示法

當遇到特殊的「[B\ @”表示時在Java 中列印位元組數組經常讓開發人員感到困惑。它代表什麼,我們如何解讀它的意義?

解碼符號

符號「[B@」不是位元組陣列內容的十六進位表示而是物件描述符。每個元件代表一個特定的面向:

  • [ :表示陣列類型。
  • B :表示位元組資料型態。
  • @ :分隔型別識別碼與物件ID.
  • 十六進位數字 : 唯一的物件 ID 或雜湊碼。

有效列印陣列內容

To顯示位元組陣列的實際內容,而不是物件ID,您可以使用各種方法:

  • 明確迭代與轉換:

    byte[] in = {1, 2, 3, -1, -2, -3};
    for (byte b : in) {
    System.out.print(String.valueOf(b)   " ");
    }
  • 十六進位字串轉換:

    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 Native介面)。這是完整清單:

  • B - byte
  • B - byte
  • C - char
  • DD
  • ] - 雙
  • F
  • - float
  • I
  • - int
  • J - 長
  • . ]L
  • 完全限定-class;;** - 類別名稱
  • S - Short
  • Z - 布林值[ - 陣列維度*(參數types

)

return-type What is the \

- 方法簽名

理解此表示法使您能夠在Java 的複雜世界中導航充滿信心的資料表示。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3