Maison >Java >javaDidacticiel >Pourquoi mon tableau d'octets Java s'imprime-t-il sous la forme « [B@1ef9157 » au lieu de son contenu ?

Pourquoi mon tableau d'octets Java s'imprime-t-il sous la forme « [B@1ef9157 » au lieu de son contenu ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 05:03:02417parcourir

Why Does My Java Byte Array Print as

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 :

  • [  : Indique qu'il s'agit d'un tableau
  • B : Spécifie qu'il s'agit d'un tableau d'octets
  • @ : Sépare le type du ID d'objet
  • 1ef9157 : Une représentation hexadécimale de l'ID d'objet

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 :

  • B - octet
  • [ - tableau
  • @ - séparateur entre type et ID
  • 1ef9157 - ID d'objet

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn