Patch Set 2: (1 inline comment)

The JVM doesn't choose to use StringBuilder(not StringBuffer). It is the 
compiler that add StringBuilder for common (non-loop) String concatenations.

The JVM could possibly do it (since it is allowed to any optimization as long as we cannot tell), but as far as I know, it still doesn't.

StringBuilder was intriduced in Java5