Maison > Java > javaDidacticiel > Comment Java représente-t-il en interne les chaînes : UTF-16 ou UTF-8 modifié ?

Comment Java représente-t-il en interne les chaînes : UTF-16 ou UTF-8 modifié ?

DDD
Libérer: 2024-11-11 01:32:03
original
1019 Les gens l'ont consulté

How Does Java Internally Represent Strings: UTF-16 or Modified UTF-8?

Démêler la représentation des chaînes de Java : UTF-16 ou UTF-8 modifié ?

Dans le domaine de Java, la représentation interne des chaînes a été un sujet de débat. Deux sources apparemment fiables présentent des informations contradictoires :

Une source suggère que Java utilise UTF-16 pour la représentation interne du texte, tandis que l'autre postule une version modifiée d'UTF-8. Laquelle de ces affirmations est vraie ?

La réponse : UTF-16 pour la représentation interne

Java adopte UTF-16 pour sa représentation interne du texte, y compris les chaînes, les chaînes constructeurs et autres structures connexes. Ce système de codage utilise des unités de code Unicode 16 bits pour représenter les caractères compris entre U 0000 et U FFFF ou les unités de code UTF-16.

UTF-8 modifié pour la sérialisation

Bien que Java privilégie UTF-16 en interne, il utilise une variante non standard de UTF-8 pour la sérialisation des cordes. La sérialisation implique la transformation d'objets Java dans un format stockable et transmissible, et dans ce contexte, les chaînes sérialisées sont représentées en utilisant UTF-8 modifié.

Stockage en mémoire : chaînes compressées

Au niveau JVM, Java peut utiliser des chaînes compressées (activées par -XX : UseCompressedStrings), où les chaînes qui ne nécessitent pas Le codage UTF-16 peut être stocké à l'aide du codage ISO-8859-1 8 bits. Cette optimisation réduit l'utilisation de la mémoire pour des types spécifiques de chaînes.

Utilisation des octets pour Char

Une variable char en Java occupe systématiquement 2 octets, quelles que soient les considérations de remplissage au sein d'un objet. .

Points de code et représentation des personnages

Il est important de notez qu'un point de code, représentant des caractères au-delà de la limite 65535, peut être exprimé en utilisant un ou deux caractères (c'est-à-dire 2 ou 4 octets).

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal