Como ilustração, considere o seguinte trecho de código:
String s1, s2, s3, s4, s5, s6;
s1 = "Olá!";
s2 = "Olá!";
s3 = "olá!":
s4 = new String( "Olá!" );
s5 = s4;
s6 = new String( "Olá!" );
boolean b1, b2, b3, b4, b5, b6, b7, b8;
b1 = s2.equals( s1 );
b2 = s3.equals( s1 );
b3 = s3.equalsIgnoreCase( s1 );
b4 = s4.equals( s1 );
b5 = ( s2 == s1 );
b6 = ( s4 == s1 );
b7 = ( s4 == s5 );
b8 = ( s4 == s6 );
b9 = s4.equals( s6 );
Convença-se de que, após execução deste código, os seguintes booleanos possuem o
valor true: b1, b3,
b4, b5, b7 e
b9. Já b2, b6
e b8 possuem o valor false.