Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Pool de Chaînes, Méthode Equals() | Chaîne de Caractères
Bases de Java

bookPool 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

Main.java

copy
123456789
package 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

Main.java

copy
1234567891011
package 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

Main.java

copy
1234567891011
package 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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookPool 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

Main.java

copy
123456789
package 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

Main.java

copy
1234567891011
package 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

Main.java

copy
1234567891011
package 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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 7
some-alt