Beispiel ==, equals und hashcode in java

Gegeben:

String s1= new String("abc");
String s2= new String("abc");
String s3 ="abc";
System.out.println(s1==s3);
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s3.hashCode());

Ausgabe:

false
false
true
true
96354
96354
96354

Hier == ist das falsche für jedes Objekt, aber der hashcode für jedes String-Objekt ist die gleiche. Warum ist es so?

Schreibe einen Kommentar