String str = "hello"; for(int i=0;i<100;i++){ string = string + i; } 1、这种情况系,字符串在循环中,java编译器没有办法去优化,循环的次数巨大时,会造成资源浪费; String a = "a"; String b = "b"; String c = "c"; String s = a + b + c; 2、这种情况下没问题,java编译器会进行优化; StringBuilder sb = new StringBuilder(); for(int i=0;i<10;i++){ sb.append(i); } 3、循环中,java编译器无法进行优化,所以需要手动使用StringBuilder