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
Notions de Base de Java
course content

Contenu du cours

Notions de Base de Java

Notions de Base de Java

1. Démarrer
2. Types de Base et Opérations
3. Boucles
4. Tableaux
5. Chaîne

book
Pool de Chaînes, Méthode Equals()

La méthode equals()

Ce chapitre fournit un bref aperçu de la méthode equals(). Cette méthode est utilisée pour comparer des objets et est couramment utilisée avec des objets String. Examinons un exemple de création de deux variables de chaîne identiques et de leur comparaison à l'aide de ==:

java

Main

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); } }

Dans la réponse, nous obtenons "false", mais pourquoi ? Les valeurs des deux variables de chaîne sont les mêmes et égales à "string". C'est parce que == compare les références aux objets en mémoire, pas les valeurs réelles. Nos objets sont en dehors du String pool.

String pool

Qu'est-ce que le String Pool ? C'est une zone dans la mémoire heap qui est allouée lors de la création d'objets de chaîne. Si nous créons un objet String avec la valeur "string" et ensuite créons un autre objet String avec la même valeur, les deux objets feront référence au même objet en mémoire, qui est situé dans le string pool.

Alors pourquoi avons-nous obtenu "false" dans notre cas ? C'est parce que nous avons contourné le string pool en créant des objets en utilisant la syntaxe String first = new String("string");. Lorsque nous créons un objet String en utilisant une syntaxe différente, comme String first = "string";, il sera placé dans le string pool.

Considérons un exemple de code :

java

Main

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 diagramme expliquant comment cela fonctionne et quels objets se trouvent dans le String Pool.

Comment comparons-nous les valeurs des chaînes dans le String Pool et celles en dehors ? À cet effet, Java fournit la méthode equals, qui compare les valeurs de nos objets String au lieu de leurs références. Considérons un exemple de code où nous comparons des chaînes en utilisant la méthode equals au lieu de ==.

java

Main

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))); } }

Maintenant, nous pouvons voir que nous avons la comparaison correcte.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 7
We're sorry to hear that something went wrong. What happened?
some-alt