Junior — Middle
Dans quel endroit de la mémoire du stockage Java se trouvent les objets de chaîne ?
sobes.tech IA
Réponse de l'IA
En Java, les objets chaîne (String) sont stockés dans une zone mémoire spéciale appelée String Pool (piscine de chaînes), qui se trouve dans le Metaspace ou dans PermGen (dans les anciennes versions de JVM).
Lorsqu'un littéral de chaîne est créé, la JVM vérifie la piscine de chaînes : si cette chaîne existe déjà, une référence à l'objet existant est renvoyée ; sinon, un nouvel objet est créé et placé dans la piscine. Cela permet d'économiser de la mémoire et d'accélérer la comparaison des chaînes.
Si une chaîne est créée via le constructeur new String(), l'objet est créé dans le tas (heap), et ne sera pas automatiquement placé dans le String Pool, sauf si la méthode intern() est appelée explicitement.
Exemple :
String s1 = "hello"; // chaîne dans la piscine
String s2 = new String("hello"); // objet dans le tas
String s3 = s2.intern(); // s3 fait référence à la chaîne dans la piscine