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.