For some reason, the designers of Java decided to make + and += work with Strings. These are the only Objects in Java that have an overloaded operator that turns out to do some magic behind the scenes.

You see it all over the place:

But when is this acceptable when when is it problematic?
(more…)