循环中频繁拼接字符串,推荐用什么?为什么?

Java

  1. A.StringBuilder:String 不可变,+ 会产生新对象
  2. B.String 的 + 拼接,最直观,javac 会把循环内的 + 合并成单次 concat 调用
  3. C.char 数组手动拷贝,StringBuilder 内部并不这样做所以更慢
  4. D.String.intern():先把各片段放入常量池再拼接,常量池内的拼接不会产生新对象