Salut,
J'ai ete a un entretien et l'une des questions ressemblait a ceci (je passe les tests du meme genre sur String avec equals et l'utilisation de new):
Je me dis sur le coup, vu qu'un String ne peut pas changer, t2 et t3 pointent forcement sur le meme objet, donc le 1er test afficherait "Equals". Ce n'est pourtant pas le cas, et j'ai un peu de mal à m'expliquer pourquoi, surtout quand on voit que le 2nd test renvoie "Equals" comme prevu. Pourquoi t2 et t3 pointent ils sur des objets differents ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class TestString { public static void main(String[] args) { String t1 = "France"; String t2 = t1 + " Mexique"; String t3 = t1 + " Mexique"; String t4 = "France" + " Mexique"; String t5 = "France" + " Mexique"; if(t2 == t3) System.out.println("Equals"); else System.out.println("Not Equals"); //Resultat affiche if(t4 == t5) System.out.println("Equals"); //Resultat affiche else System.out.println("Not Equals"); } }
Merci d'avance de votre aide.
Nuriel








Répondre avec citation




C'est vraiment pour dire de ne finir avec aucun candidat si toutes les questions étaient dans le même accabi
D'ailleurs un "bon" candidat répondrait que, de toutes façons, on ne compare pas des String avec == sauf si on veux risquer de foutre en l'air le code au moindre changement 

Partager