Heim >Java >javaLernprogramm >Was bedeutet „[B@1ef9157' beim Drucken von Byte-Arrays in Java?

Was bedeutet „[B@1ef9157' beim Drucken von Byte-Arrays in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 22:05:02986Durchsuche

What does

Entschlüsselung der Bedeutung hinter „[B@1ef9157“ in Java

Bei der Arbeit mit Java stoßen Entwickler möglicherweise auf seltsame Präfixe wie „[ B@1ef9157“ beim Versuch, Byte-Arrays zu drucken. Obwohl diese Zeichenfolgen kryptisch erscheinen mögen, enthalten sie wichtige Informationen über die Struktur und den Inhalt des Arrays.

Zusammensetzung des Präfixes

Das Präfix „[B@1ef9157“ kann sein ist in die folgenden Komponenten unterteilt:

  • [ gibt an, dass das Objekt ein Array ist.
  • B bedeutet, dass das Array Bytes enthält .
  • @ trennt den Typ („B“) vom Identitäts-Hashcode.
  • 1ef9157 stellt den Identitäts-Hashcode oder die Objekt-ID dar.

Interpretation des Präfixes

Das Präfix allein verrät nicht den Inhalt des Byte-Arrays. Es bedeutet lediglich, dass das Objekt ein Byte-Array ist und stellt seine eindeutige Kennung bereit. Die im Array gespeicherten tatsächlichen Werte werden in diesem Format nicht angezeigt.

Den Array-Inhalt drucken

Um den tatsächlichen Inhalt des Byte-Arrays anzuzeigen, stehen verschiedene Methoden zur Verfügung . Eine Technik besteht darin, die Bytewerte in hexadezimale Zeichen umzuwandeln:

<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>

Zusätzliche Informationen

Eine umfassende Liste der in Java verwendeten Typnomenklaturen finden Sie in der JNI-Dokumentation . Die folgende Tabelle fasst die gängigen Typen zusammen:

Tabelle>
Type Representation
Byte B
Zeichen C
Double D
Float F
Ganzzahl I
Lang J
Klasse L *fully-qualified-class*;;
Short S
Boolean Z
Array [
Methode Signatur (
Type Representation
Byte B
Character C
Double D
Float F
Integer I
Long J
Class L*fully-qualified-class*;;
Short S
Boolean Z
Array [
Method Signature (argument types;)return-type
Argumenttypen;)Rückgabetyp

Das obige ist der detaillierte Inhalt vonWas bedeutet „[B@1ef9157' beim Drucken von Byte-Arrays in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn