This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
The discussion on the link you provided gives the answer. Basically, String objects are immutable, so no methods of the String class can modify the String object on which they are invoked. If the result of the method leaves the String unchanged (for instance invoking toLowerCase on a String containing ONLY lowercase characters) then the same String object is returned otherwise a completely new String object is returned. For instance: String t1 = "test"; String t2 = t1.toLowercase(); // t1 and t2 reference the same object String t3 = t1.toUpperCase(); t3 refers to a completely new String object HIH [ January 16, 2002: Message edited by: Valentin Crettaz ]