well...
i thing the s4 references the same memory position than s2.
The s4 comes from s2 without any modification, by the way, s2 is already in lower case, cauz' this, they references the same memory position. So, in this case, s4 = s2 and s4 = s2.toLowerCase() is the same thing.
If u want
test, go and add this lines in your code
String s5=new String("CASE MATTERS NOW");
String s6=s5.toUpperCase();
System.out.println(s6==s5);
the operator "==" returns true if the objects are identical, and equals returns true if the object are "equivalents" (remember: the operator equals can be overloading )
SCJP 1.4, SCWCD 1.4, SCBCD 5, OCUP, SCEA 5 (I), Oracle SOA Implementation Specialist, IBM Websphere Lombardi 7.1 Fundamentals
Blog: [url]http://www.leozin.com.br/blog[/url]