Maison  >  Article  >  tutoriels informatiques  >  Existe-t-il une limite à la longueur du type String en Java ?

Existe-t-il une limite à la longueur du type String en Java ?

WBOY
WBOYavant
2024-01-06 08:07:491718parcourir

Y a-t-il une limite de longueur pour le type String en Java

À proprement parler, String a une limite de longueur.

1. String utilise en interne un tableau char[] pour stocker le contenu de la chaîne. L'indice du tableau est un entier (vous pouvez également vous référer à la méthode de construction String String(char value[], int offset, int count) pour savoir. le nombre de caractères) Il est représenté par un type entier), et le type entier (Java spécifie 32 bits) représente une plage de 2G, c'est-à-dire que la longueur maximale d'un tableau Java est de 2G, c'est-à-dire la chaîne. ne peut pas dépasser 2G caractères.

2. Existe-t-il d'autres restrictions sur la taille du tableau Java ? En fait, la taille du tableau ne peut pas dépasser la taille du tas Java, et la taille maximale du tas Java peut être spécifiée via les paramètres de démarrage. Si le tas Java est suffisamment grand, la longueur maximale du tableau peut continuer à augmenter. .

Ainsi, selon la théorie, le nombre de caractères dans une chaîne ne peut pas dépasser 2G, mais il est possible d'avoir moins de 2G caractères.

Y a-t-il une limite sur la longueur de chaîne des constantes de chaîne

String est stocké en interne sous la forme d'un tableau de caractères. La longueur du tableau est de type int, donc la longueur maximale autorisée par String est Integer.MAX_VALUE. Et comme les caractères en Java sont stockés sur 16 bits, environ 4 Go de mémoire sont nécessaires pour stocker la longueur maximale de la chaîne. Mais cela ne concerne que les variables de chaîne. S'il s'agit d'une chaîne littérale (littéraux de chaîne), tels que "abc", "1a2b" et d'autres littéraux de chaîne écrits dans le code, alors la longueur maximale autorisée dépend de la taille de stockage de la chaîne. le pool constant est le format de stockage des chaînes dans les fichiers au format classe :

CONSTANT_Utf8_info {

balise u1 ;

longueur u2 ;

u1 octets[longueur];

}

u2 est un entier non signé de 16 bits, donc la longueur maximale théorique d'une chaîne littérale autorisée est de 2^16-1=65535. Cependant, après des tests réels, il a été constaté que la longueur maximale autorisée n'est que de 65 534 et que le dépassement de cette limite entraînera des erreurs de compilation.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer