解決「[B\@」之謎:理解Java位元組數組表示法
當遇到特殊的「[B\ @”表示時在Java 中列印位元組數組經常讓開發人員感到困惑。它代表什麼,我們如何解讀它的意義?
解碼符號
符號「[B@」不是位元組陣列內容的十六進位表示而是物件描述符。每個元件代表一個特定的面向:
有效列印陣列內容
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介面)。這是完整清單:
)
return-type
- 方法簽名理解此表示法使您能夠在Java 的複雜世界中導航充滿信心的資料表示。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3