Skip to main content
PreparationZone Logo
PreparationZone
Back to Java

Java · Medium · Free

String concat in loop — bytecode and performance fix?

JavaTrickyFresher
Model answer

Concatenation in loops

Using + on String in a loop creates a new String each iteration—quadratic copying. The compiler may optimize single-expression concat with invokedynamic string concat (JDK 9+), but loops still need StringBuilder or joining collectors.

  • Bytecode: repeated concat → StringBuilder in loop at compile time for simple cases, not always for complex loops.
  • Prefer StringBuilder or String.join / Collectors.joining.
  • Logging: pass parameters to SLF4J {} placeholders—no manual concat.
  • Microbenchmark with JMH before "optimizing" small loops.
java
StringBuilder sb = new StringBuilder();
for (String part : parts) sb.append(part).append(',');
String csv = sb.substring(0, sb.length() - 1);

// Or: String joined = String.join(",", parts);
Interview tip: Mention JDK 9+ dynamic concat for a + b + c but insist loops use StringBuilder.