"// These two have the same value
new String(""test"").equals(""test"") // --> true
// ... but they are not the same object
new String(""test"") == ""test"" // --> false
// ... neither are these
new String(""test"") == new String(""test"") // --> false
// ... but these are because literals are interned by
// the compiler and thus refer to the same object
""test"" == ""test"" // --> true "