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() | Section
Fondamentaux de Java

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 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 font référence au 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ù les chaînes sont comparées à 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 nous avons la comparaison correcte.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 35

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

Section 1. Chapitre 35
some-alt