Concat is definitely a faster choice for two strings concatination, I don't know why javac internally uses
(new StringBuilder(String.valueOf(s1))).append(s2).toString()
instead of
s1.concat(s2)
for s1 += s2. See my answer to a similar question concatenation operator (+) vs concat()