Maison > Java > javaDidacticiel > le corps du texte

Que signifie \'[B@1ef9157\' lors de l'impression de tableaux d'octets en Java ?

Barbara Streisand
Libérer: 2024-10-28 22:05:02
original
895 Les gens l'ont consulté

What does

Déchiffrer la signification de "[B@1ef9157" en Java

Lorsqu'ils travaillent avec Java, les développeurs peuvent rencontrer des préfixes particuliers tels que "[ B@1ef9157" lors de la tentative d'impression de tableaux d'octets. Bien que ces chaînes puissent paraître énigmatiques, elles contiennent des informations importantes sur la structure et le contenu du tableau.

Composition du préfixe

Le préfixe "[B@1ef9157" peut être décomposé selon les composants suivants :

  • [ indique que l'objet est un tableau.
  • B signifie que le tableau contient des octets .
  • @ sépare le type ("B") du hashcode d'identité.
  • 1ef9157 représente le hashcode d'identité ou l'ID d'objet.

Interprétation du préfixe

Le préfixe à lui seul ne révèle pas le contenu du tableau d'octets. Cela signifie simplement que l'objet est un tableau d'octets et fournit son identifiant unique. Les valeurs réelles stockées dans le tableau ne sont pas affichées dans ce format.

Impression du contenu du tableau

Pour afficher le contenu réel du tableau d'octets, différentes méthodes sont disponibles . Une technique consiste à convertir les valeurs d'octets en caractères hexadécimaux :

<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>
Copier après la connexion

Informations supplémentaires

Pour une liste complète des nomenclatures de types utilisées en Java, reportez-vous à la documentation JNI . Le tableau suivant résume les types courants :

tableau>
Type Représentation
Octet B
Caractère C
Double D
Float F
Entier I
Long J
Classe L *classe pleinement qualifiée*;;
Court S
Booléen Z
Tableau [
Méthode Signature (
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
types d'arguments;)type de retour

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!