zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Wie würde sich das Programm ändern, wenn die zweite Anweisung folgendermaßen geändert werden würde:

String str2 = "StringLiteral" ;    // kleiner Unterschied

Antwort:

Jetzt, da das zweite Literal nicht mit dem Ersten identisch ist, werden zwei literale Stringobjekte erzeugt, und die Variablen str1 und str2 verweisen auf verschiedene Objekte.

Zwei Strings, die == sind, sind immer equal()

Der == -Operator überprüft, ob zwei Variablennamen auf dasselbe Objekt verweisen. Es ist in der realen Welt (und in Programmen) üblich für ein Objekt mehrere Namen zu haben, zum Beispiel "Mark Twain" und "Samuel Clemens" sind zwei Namen für denselben Autor.

Wir betrachten das Folgende:

String strA = new String ("Der Gingham Hund");
String strB = strA;

FRAGE 23:

In dem folgenden Code, wird equal() WAHR oder FALSCH anzeigen?

String lit1 = "ein Stringliteral" ;
String lit2 = "ein Stringliteral" ;

if ( lit1.equals( lit2 ) )
  System.out.println("WAHR");
else
  System.out.println("FALSCH");