String lit1 = "String Literal" ;
String lit2 = "String Literal" ;

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

Eine gute Antwort könnte sein:

In diesem Fall gibt es nur ein Objekt (ein String-Literal), auf das beide lit1 und lit2 verweisen. Also erkennt equals() äquivalente Daten und gibt wahr zurück.

Beispiel fortgesetzt

Hier ist das vorige Programm mit ein paar mehr if-Anweisungen:

class BspLiteral2
{
  public static void main ( String[] args )
  {
    String str1 = "String literal" ;  // ein Literal erzeugen
    String str2 = "String literal" ;  // str2 verweist auf dasselbe Literal

    String msgA = new String ("Look Out!");  // ein Objekt erzeugen
    String msgB = new String ("Look Out!");  // ein weiteres Objekt erzeugen

    if ( str1 == str2 )
      System.out.println( "Dies WIRD ausgegeben.");

    if ( str1 .equals( str2 ) )
      System.out.println( "Dies WIRD ausgegeben.");

    if ( msgA == msgB )
      System.out.println( "Dies wird NICHT ausgegeben.");

    if ( msgA .equals( msgB  ) )
      System.out.println( "Dies WIRD ausgegeben.");
  }

}

FRAGE 23:

Angenommen Sie wissen, dass ding1.equals( ding2 ) FALSCH ist.

Was können Sie dann über ( ding1 == ding2 ) sagen?