Représentation interne des chaînes de Java
Java utilise UTF-16 pour sa représentation de texte interne. Cela signifie que chaque caractère d'une chaîne Java est codé à l'aide d'une unité de code Unicode de 16 bits. Cette représentation permet à Java de prendre en charge un large éventail de caractères, y compris ceux des alphabets non latins.
UTF-8 modifié pour la sérialisation
Alors que Java utilise UTF-16 en interne, il utilise une version modifiée d'UTF-8 pour la sérialisation des chaînes. Ce format UTF-8 modifié garantit la compatibilité avec d'autres systèmes utilisant le codage UTF-8, tels que les navigateurs Web. Pour la représentation des données externes, Java suit généralement le strict CESU-8.
Représentation des caractères en mémoire
Un seul caractère en Java, représenté comme un type primitif char, occupe deux octets en mémoire. Ceci quel que soit le point de code Unicode du caractère. Les points de code supérieurs à 65535 nécessitent deux caractères, ce qui donne une représentation sur 4 octets en mémoire.
Dans certaines circonstances, Java peut utiliser une technique de compression appelée UseCompressedStrings. Cette technique permet un codage ISO-8859-1 8 bits pour les chaînes qui ne nécessitent pas UTF-16. Cependant, il s'agit d'une optimisation spécifique à l'implémentation et non de la représentation interne par défaut des chaînes.
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!