You should be using .equals and not == when comparing java strings.
== Compares references and therefore s2.ToString() returns s2.
From the java glossary about heap / stack:
In Sun’s JVM, the interned Strings (which includes String literals) are
stored in a special pool of RAM
called the perm gen, where the JVM
also loads classes and stores
natively compiled code. However, the
intered Strings behave no differently
than had they been stored in the
ordinary object heap.