As far as speed, I don't know that there is any difference. However, both of these examples will use much more space than StringBuffer will. To understand why, let's look at the second example:
First a new String "12" is formed from "1" + "2". Then the String "123" is formed by concatenating the "3", and so on. So overall 60 Strings will be created, one for each of the individual numbers and one for each of the intermediate results of the concatenation. On the other hand StringBuffer will use a single buffer and concatenate the characters to it dynamically.