解决“[B@”之谜:理解 Java 字节数组表示法
打印字节时遇到的奇特“[B@”表示法Java 中的数组经常让开发人员感到困惑。它意味着什么,我们如何解读它的含义?
解码符号
符号“[B@”不是字节数组内容的十六进制表示而是一个对象描述符。每个组件代表一个特定的方面:
有效打印数组内容
要显示字节数组的实际内容,而不是对象 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>
了解 JNI 命名法
“[B@”表示法是用于描述 JNI(Java 本机接口)类型的更大系统的一部分。这是完整列表:
理解此表示法使您能够自信地驾驭 Java 数据表示的复杂世界。
以上是什么是'[B\\@”之谜:理解 Java 字节数组表示法?的详细内容。更多信息请关注PHP中文网其他相关文章!