Maison >Java >javaDidacticiel >Pool de chaînes Java : tas ou pile : où réside un objet chaîne ?
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");
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") :
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!