Pool de Chaînes, Méthode Equals()
La méthode equals()
Cette méthode est utilisée pour comparer des objets et est couramment utilisée avec les objets String. Examinons un exemple de création de deux variables de chaîne identiques et de leur comparaison à l'aide de == :
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }
Le résultat est false car == compare les références d'objet, et non leurs valeurs réelles. Même si les deux chaînes contiennent "string", ce sont des objets différents en mémoire et ils sont créés en dehors du String pool.
String pool
Le String Pool est une partie de la mémoire heap où les littéraux de chaîne sont stockés. Lorsque vous créez des chaînes avec la même valeur en utilisant des littéraux, elles référencent le même objet en mémoire.
Pourquoi avons-nous obtenu false ? Parce que nous avons contourné le string pool en utilisant new String("string"), ce qui crée un nouvel objet en mémoire. Lorsque vous utilisez String first = "string";, la chaîne est placée dans le string pool et peut être partagée.
Voyons un exemple de code :
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }
Considérons un schéma expliquant le fonctionnement et les objets présents dans le String Pool.
Comment comparer les valeurs des chaînes dans le String Pool et celles en dehors ? À cet effet, Java propose la méthode equals, qui compare les valeurs de nos objets String au lieu de leurs références. Examinons un exemple de code où nous comparons des chaînes à l'aide de la méthode equals plutôt que ==.
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }
Nous pouvons maintenant constater que la comparaison est correcte.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 2.7
Pool de Chaînes, Méthode Equals()
Glissez pour afficher le menu
La méthode equals()
Cette méthode est utilisée pour comparer des objets et est couramment utilisée avec les objets String. Examinons un exemple de création de deux variables de chaîne identiques et de leur comparaison à l'aide de == :
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }
Le résultat est false car == compare les références d'objet, et non leurs valeurs réelles. Même si les deux chaînes contiennent "string", ce sont des objets différents en mémoire et ils sont créés en dehors du String pool.
String pool
Le String Pool est une partie de la mémoire heap où les littéraux de chaîne sont stockés. Lorsque vous créez des chaînes avec la même valeur en utilisant des littéraux, elles référencent le même objet en mémoire.
Pourquoi avons-nous obtenu false ? Parce que nous avons contourné le string pool en utilisant new String("string"), ce qui crée un nouvel objet en mémoire. Lorsque vous utilisez String first = "string";, la chaîne est placée dans le string pool et peut être partagée.
Voyons un exemple de code :
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }
Considérons un schéma expliquant le fonctionnement et les objets présents dans le String Pool.
Comment comparer les valeurs des chaînes dans le String Pool et celles en dehors ? À cet effet, Java propose la méthode equals, qui compare les valeurs de nos objets String au lieu de leurs références. Examinons un exemple de code où nous comparons des chaînes à l'aide de la méthode equals plutôt que ==.
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }
Nous pouvons maintenant constater que la comparaison est correcte.
Merci pour vos commentaires !