thinking in java 第四版 第十三章 字符串 练习1

原题简化:哪个编译最优

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?

猜你喜欢

转载自blog.csdn.net/weixin_43842590/article/details/86477679