String lit1 = "ein Stringliteral" ; String lit2 = "ein Stringliteral" ; if ( lit1.equals( lit2 ) ) System.out.println("WAHR"); else System.out.println("FALSCH");
In diesem Fall gibt es nur ein Objekt (ein Stringliteral), auf das
sowohl lit1
als auch lit2
verweisen.
Also erkennt equals()
, dass die Daten äquivalent sind und es wird WAHR ausgegeben.
Hier ist das vorige Programm mit ein paar mehr if
-Anweisungen:
class StringliteralBsp2 { public static void main ( String[] args ) { String str1 = "ein Stringliteral" ; // ein Literal erzeugen String str2 = "ein Stringliteral" ; // str2 verweist auf dasselbe Literal String msgA = new String ("Aufgepasst!"); // ein Objekt erzeugen String msgB = new String ("Aufgepasst!"); // 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."); } }
Angenommen wir wissen, dass str1.equals( str2 )
FALSCH ist.
Was können wir dann über ( str1 == str2 )
sagen?