Maison > Java > javaDidacticiel > Pool de chaînes Java : tas ou pile : où réside un objet chaîne ?

Pool de chaînes Java : tas ou pile : où réside un objet chaîne ?

DDD
Libérer: 2024-12-17 21:14:12
original
952 Les gens l'ont consulté

Java String Pool: Heap or Stack—Where Does a String Object Reside?

Java String Pool : allocation de pile par rapport au stockage de tas

Considérez l'extrait de code :

String first = "abc"; 
String second = new String("abc");
Copier après la connexion

Instanciation d'un Un nouvel objet String avec le mot-clé new crée un objet String distinct sur le tas. Contrairement à d'autres primitives, les objets String sont immuables, ce qui signifie qu'ils ne peuvent pas être modifiés après l'initialisation.

Cependant, Java maintient un pool de chaînes dans le tas, qui stocke un nombre limité de chaînes couramment utilisées. Lorsqu'une chaîne littérale (entre guillemets doubles) est définie, le compilateur vérifie dans le pool de chaînes une chaîne correspondante existante. S'il est trouvé, la chaîne littérale fera référence à la chaîne existante dans le pool, garantissant ainsi l'efficacité de la mémoire.

Dans cet exemple, puisque "abc" est une chaîne littérale, elle sera placée dans le pool de chaînes.

Maintenant, considérons le nouvel objet String créé avec new String("abc") :

  • Un nouvel objet String est créé sur le tas, pas dans le pool String.
  • Bien qu'il s'agisse d'une copie du littéral "abc", cet objet ne sera pas stocké dans le pool String.

Par conséquent, notre code aboutit à une chaîne dans le pool de chaînes ("abc"") et une chaîne distincte sur le tas (celle créée avec le nouveau Chaîne("abc")).

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