public class StringVergleich{ public static void main(String[] args){ String a = new String("hallo"); String b = new String("hallo"); System.out.println("a == b liefert " + (a == b)); System.out.println("a != b liefert " + (a != b)); // Merke: Bei Strings wird bei == nicht der INHALT // Zeichen für Zeichen verglichen, sondern die // ADRESSE // Generell in JAVA: Bei allen Variablen, die // keinen BASIS-Datentyp haben (int, double, ...) // sondern OBJEKTE sind (String, ...), bewirkt // der Vergleichsoperator ==, dass auf "ist es das // identische Objekt" verglichen wird (also quasi die // Speicheradresse). // Vergleich des INHALTS von solchen Objekten // mit Klassenspezifischen Methoden! System.out.println("a.equals(b) liefert " + a.equals(b)); // Um sich die virtuelle Speicheradresse eines // Objektes ausgeben zu lassen, gibt es auch // Klassenmethoden, z.B. toString() // (außer bei Strings, da geht es wie folgt. ;) String s = new String("Hallo, Welt!"); System.out.println(s.getClass().getSimpleName() + "@" + s.getClass().hashCode()); } }