Heim >Java >javaLernprogramm >Warum wird mein Java-Byte-Array als „[B@1ef9157'' anstelle seines Inhalts gedruckt?
Verstehen Sie „[B@1ef9157“: Binär oder Adresse?
Beim Arbeiten mit Byte-Arrays in Java stoßen Sie möglicherweise auf das „[ B@-Präfix“ beim Drucken des Byte-Arrays. Dies kann verwirrend sein, da Sie möglicherweise erwarten, den tatsächlichen Inhalt des Arrays und nicht eine scheinbar zufällige Zeichenfolge zu sehen.
Erklärung
Das „[B@ Präfix“ ist keine Darstellung des Inhalts des Byte-Arrays. Es ist die Objekt-ID des Arrays. Diese ID identifiziert das Array im Speicher.
Struktur der Objekt-ID
Die Objekt-ID besteht aus:
Inhalt des Byte-Arrays drucken
Wenn Ihr Ziel ist es, die tatsächlichen Werte des Byte-Arrays zu drucken. Sie müssen eine Methode verwenden, die die Bytes speziell in ein druckbares Format konvertiert. Sie können beispielsweise die Methode byteArrayToString() verwenden:
<code class="java">byte[] in = new byte[] { 1, 2, 3, -1, -2, -3 }; System.out.println(byteArrayToString(in));</code>
Die Methode byteArrayToString() konvertiert das Byte-Array in eine Zeichenfolge aus hexadezimalen Zeichen und erleichtert so das Lesen.
JNI-Typnomenklatur
Das „[B@-Präfix““ ist Teil der JNI-Typnomenklatur (Java Native Interface). Diese Nomenklatur wird verwendet, um Java-Typen in nativem Code zu identifizieren:
Weitere Informationen zur JNI-Typnomenklatur finden Sie in der offizielle JNI-Dokumentation.
Das obige ist der detaillierte Inhalt vonWarum wird mein Java-Byte-Array als „[B@1ef9157'' anstelle seines Inhalts gedruckt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!