Wow, that is bizarre. I never knew that. Apparently any call to Integer.toString(int) with a value between -3 and 10 inclusive will return true because it uses the same string constant. Did they somehow determine that these values were so common that having them all point to the same string representation in memory was more efficient?
EDIT:
Looking further at the JDK, it must have something to do with this "invariant divison by multiplication" algorithm they use to make the toString conversion quicker. But the algorithm is a little obscure for my small brain.
[ August 24, 2005: Message edited by: Ryan Kade ]