字符串连接需要多少个存储位置?

String myStringVariable = "Hello";

在以下两个语句中:
String s = "ABC" + "Hello" + "DEF";


String s = "ABC";
s = s + "Hello";
s = s + "DEF";


String s = "ABC" + myStringVariable + "DEF";

哪个会消耗更多的内存?在哪种情况下,StringBuilder最有用?

最佳答案

第一条语句将由编译器转换为String s = "ABCDEF";,因此不会出现任何混淆

第二条语句将由编译器转换为此代码(或类似的代码)

    String s = "ABC";
    StringBuilder sb = new StringBuilder(s);
    sb.append("DEF");
    s = sb.toString();

09-10 02:39
查看更多