Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter
Séquence
== ou equals ?
Socle
Complétez les deux méthodes : avecEgalEgal compare avec ==, avecEquals compare avec equals. Lancez le main : les deux chaînes contiennent le même texte, et pourtant les deux méthodes ne répondent pas la même chose. Expliquez pourquoi dans un commentaire.
Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.
Code de départ
Exercices.java
public class Exercices {
public static void main(String[] args) {
String a = new String("java");
String b = new String("java");
System.out.println("avec == : " + avecEgalEgal(a, b));
System.out.println("avec equals : " + avecEquals(a, b));
// TODO : expliquer la difference ici, en commentaire
}
public static boolean avecEgalEgal(String a, String b) {
// TODO : comparer avec ==
return false;
}
public static boolean avecEquals(String a, String b) {
// TODO : comparer avec equals
return false;
}
}
Le socle se valide dans l’atelier, qui demande JavaScript.
Indice 1
== demande « est-ce la même case mémoire ? ». equals demande « est-ce le même contenu ? ». Les chaînes littérales identiques sont mises en commun par Java, mais new String("java") crée bien un objet distinct.