首頁 > Java > java教程 > 主體

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

Linda Hamilton
發布: 2024-10-30 04:19:28
原創
299 人瀏覽過

 What is the

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

列印位元組時遇到的奇特「[ B@”表示法Java 中的陣列經常讓開發人員感到困惑。它意味著什麼,我們如何解讀它的意義?

解碼符號

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

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

有效列印陣列內容

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

  • 明確迭代與轉換:

    <code class="java">byte[] in = {1, 2, 3, -1, -2, -3};
    for (byte b : in) {
    System.out.print(String.valueOf(b) + " ");
    }</code>
    登入後複製
  • 十六進位字串轉換:

    <code class="java">System.out.println(Base64.getEncoder().encodeToString(in));</code>
    登入後複製
    十六進位字串轉換:
  • <code class="java">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>
    登入後複製
    自訂字串轉換:

「[B@」表示法是用來描述JNI(Java 本機介面)類型的更大系統的一部分。這是完整清單:
  • B
  • - 位元組
  • C
  • - char
  • C
  • - char
  • D
  • 🎜 > - 雙
  • F
  • - 浮點
  • I
  • - 整數JJ
  • L
  • 完全限定類別
  • ;;** - 類別名稱
  • S
  • - 短
  • S
  • - 短S - 短S - 短
  • S
- 短

Z - 布林值[ - 陣列維度*(參數型別🎜>*(參數類型 )回傳類型 - 方法簽章理解此表示法使您能夠自信地駕馭Java 資料表示的複雜世界。

以上是什麼是「[B\\@」之謎:理解 Java 位元組數組表示法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!