Maison >Java >javaDidacticiel >Pourquoi mon tableau d'octets Java s'imprime-t-il sous la forme « [B@1ef9157 » au lieu de son contenu ?
Comprendre "[B@1ef9157" : binaire ou adresse ?
Lorsque vous travaillez avec des tableaux d'octets en Java, vous pouvez rencontrer le "[ B@ préfixe" lors de l'impression du tableau d'octets. Cela peut prêter à confusion, car vous pourriez vous attendre à voir le contenu réel du tableau plutôt qu'une chaîne de caractères apparemment aléatoire.
Explication
Le "[B@ préfixe" n'est pas une représentation du contenu du tableau d'octets. C'est l'ID objet du tableau. Cet ID identifie le tableau en mémoire.
Structure de l'ID d'objet
L'ID d'objet se compose de :
Impression du contenu du tableau d'octets
Si votre L'objectif est d'imprimer les valeurs réelles du tableau d'octets, vous devrez utiliser une méthode qui convertit spécifiquement les octets dans un format imprimable. Par exemple, vous pouvez utiliser la méthode byteArrayToString() :
<code class="java">byte[] in = new byte[] { 1, 2, 3, -1, -2, -3 }; System.out.println(byteArrayToString(in));</code>
La méthode byteArrayToString() convertit le tableau d'octets en une chaîne de caractères hexadécimaux, ce qui facilite la lecture.
Nomenclature des types JNI
Le "préfixe [B@" fait partie de la nomenclature des types JNI (Java Native Interface). Cette nomenclature est utilisée pour identifier les types Java en code natif :
Pour plus d'informations sur la nomenclature des types JNI, reportez-vous au documentation officielle de JNI.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!