Bonjour à tous,

Je m'interroge sur le principe des comparaisons par référence ( == ).
Je viens de faire le test suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
		String t1 = new String("toto");
		String t2 = new String("toto");
 
		System.out.println(t1.hashCode());
		System.out.println(t2.hashCode());
		System.out.println(t1==t2);
Je pense que je me trompe, mais pour moi la référence (sur lequel se faisait le contrôle) était lié au hashcode de l'objet.
Or pour les String, il s'avère que dans mon exemple t1 et t2 , ont le même hashCode , mais ne sont pourtant pas égaux par référence ( t1==t2 -> false).
Donc ma question est la suivante , comment faire pour savoir ce qu'il compare dans le cas des références.
Il me semblait pourtant que dans le cas des String et aussi Integer, Float etc... , Java utilisait un pool d'objet pour optimiser sa mémoire, ce qui permettait dans le cas des Integer par exemple de faire des comparaisons de références en évitant l'appel à intValue().
Je ne sais pas vraiment si j'étais clair, mais si quelqu'un peut m'éclairer , je répondrais à toutes les questions que vous vous posez.
D'avance merci.

Zekid.