Explorations du pool de cordes de Java
Considérez le code suivant :
String first = "abc"; String second = new String("abc");
Question 1 : Pool de cordes Utilisation avec un nouveau mot-clé
Lorsque Java s'initialise en deuxième avec le new String() constructeur, crée-t-il une toute nouvelle instance abc String ?
Réponse : Oui, l'utilisation de new garantit la création d'un nouvel objet String.
Question 2 : Stockage de tas et de pools de chaînes
L'instance String nouvellement créée (à partir du nouveau mot-clé) sera-t-elle stockée dans le fichier standard tas ou le pool String ?
Réponse : Tous les objets, y compris les objets String, résident sur le tas. Le pool de chaînes n'est pas une zone de mémoire distincte ; c'est un mécanisme semblable à un cache.
Question 3 : Nombre de pools de chaînes
Combien d'instances de la chaîne « abc » finiront dans le pool de chaînes ?
Réponse : Généralement, lorsque vous créez des littéraux String immuables, Java les place automatiquement dans le String piscine. Cependant, dans ce scénario spécifique :
Par conséquent, dans ce cas, un seul un L'instance de chaîne "abc" existera dans le pool de chaînes.
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!