Dévoilement de l'énigme : comprendre "[B@1ef9157"
Lorsque vous travaillez avec des tableaux d'octets en Java, vous avez peut-être rencontré une chaîne particulière au format "[B@prefix", où "prefix" est une séquence arbitraire de caractères hexadécimaux. Cette notation apparemment énigmatique a une explication simple qui révèle sa fonction et ses principes sous-jacents.
Décomposer le préfixe
Le préfixe « [B@ » comporte quatre composants distincts qui fournissent un aperçu de la nature du tableau :
Contrairement à certaines hypothèses, le préfixe hexadécimal ne fournit pas de représentation du contenu du tableau. Au lieu de cela, il sert d'identifiant pour différencier les différents tableaux d'octets du système.
Visualisation du préfixe
Considérez l'extrait de code Java suivant :
<code class="java">byte[] byteArray = {1, 2, 3, 4}; System.out.println(byteArray.toString()); // Prints "[B@1ef9157"</code>
Dans ce cas, la notation "[B@1ef9157" véhicule les informations suivantes :
Signification du préfixe
Bien que le préfixe hexadécimal puisse ne pas révéler directement le contenu du tableau, il a de la valeur dans certains scénarios. Par exemple, cela peut aider dans les situations de débogage ou lorsque vous tentez de différencier plusieurs tableaux d'octets.
Impression du contenu du tableau
Pour imprimer le contenu réel du tableau, vous peut utiliser des méthodes comme Arrays.toString() ou Hex.encodeHex(). Cependant, n'oubliez pas que ces méthodes convertiront respectivement les valeurs d'octets en une chaîne lisible ou une représentation hexadécimale.
Notations de type supplémentaires
Au-delà de la notation "[B@" , Java fournit un système complet pour représenter différents types de données et objets :
La compréhension de ces notations est essentielle pour interpréter une sortie Java complexe et comprendre le fonctionnement interne de la plateforme.
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!