破解Java中「[B@1ef9157」背後的意思
在使用Java時,開發人員可能會遇到特殊的前綴,例如“[ B@1ef9157”嘗試列印位元組數組時。雖然這些字串看起來很神秘,但它們包含有關數組結構和內容的重要資訊。
前綴的組成
前綴“[B@1ef9157”可以是分為以下部分:
解釋前綴
前綴本身並不能揭示位元組數組的內容。它僅表示該物件是一個位元組數組並提供其唯一標識符。數組中儲存的實際值不會以這種格式顯示。
列印數組內容
要查看位元組數組的實際內容,可以使用多種方法。一種技術涉及將位元組值轉換為十六進位字元:
<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 | ||||||||||||||||||||||||
整數 td> | I | ||||||||||||||||||||||||
長 | J | ||||||||||||||||||||||||
類 | L *完全限定級*;; | ||||||||||||||||||||||||
短 | S | ||||||||||||||||||||||||
布林型 | Z | ||||||||||||||||||||||||
數組 | [ | ||||||||||||||||||||||||
方法簽章 | (
|
以上是在Java中列印位元組數組時'[B@1ef9157”是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!