Sobes.tech
Junior — Middle

Explique le principe d'utilisation de StringPool et son rôle dans la gestion des chaînes en Java

sobes.tech IA

Réponse de l'IA

StringPool en Java est un pool spécial de littéraux de chaînes qui stocke des instances uniques de chaînes pour économiser de la mémoire et améliorer les performances.

Lorsqu'une chaîne est créée via un littéral, la JVM vérifie si cette chaîne existe déjà dans le pool. Si c'est le cas, elle renvoie une référence à l'existante ; sinon, elle en ajoute une nouvelle.

Cela permet :

  • d'éviter la duplication de chaînes identiques en mémoire.
  • de comparer plus rapidement les chaînes par référence (==), si elles proviennent du pool.

Exemple :

String a = "hello";
String b = "hello";
System.out.println(a == b); // true, les deux référencent le même objet dans StringPool

String c = new String("hello");
System.out.println(a == c); // false, c est un nouvel objet hors du pool