原题简化:哪个编译最优
public class Test1 {
public static String main(String args[]) {
String valve1 = new String("1");
return "valve1 = " + valve1 + " ";
}
}
public class Test2 {
public static String main(String args[]) {
StringBuilder sb = new StringBuilder();
String valve1 = new String("1");
sb.append("valve1 = " + valve1 + " ");
return sb.toString();
}
}
public class Test3 {
public static String main(String args[]) {
StringBuilder sb = new StringBuilder();
String valve1 = new String("1");
sb.append("valve1 = ");
sb.append(valve1);
sb.append(" ");
return sb.toString();
}
}
Test1反编译结果
Test2反编译结果
Test3反编译结果
结果
Test1>Test3>Test2
总结
最终结果是用append()语句一点点拼接来的。不要走捷径,如append(a + ":" + c);,他会另外创建一个StringBuilder对象处理括号内的字符串操作。
未解决问题
Test1为什么大于Test3?