When “” == s is false but “”.equals( s ) is true
String s = “”; String s2 = someUserInputVariale.toLowercase(); // where the user entered in “” Something like that would cause s == s2 to evaluate to false. Lots of code sill create new Strings without exposing the call to new String().