Eld*_*abu 5 java string stringbuilder memory-management
字符串连接需要多少个内存位置?
String myStringVariable = "Hello";
Run Code Online (Sandbox Code Playgroud)
在以下两个陈述中:
String s = "ABC" + "Hello" + "DEF";
Run Code Online (Sandbox Code Playgroud)
和
String s = "ABC";
s = s + "Hello";
s = s + "DEF";
Run Code Online (Sandbox Code Playgroud)
和
String s = "ABC" + myStringVariable + "DEF";
Run Code Online (Sandbox Code Playgroud)
哪个会消耗更多内存?在哪种情况下StringBuilder最有用?
第一条语句将被编译器转换为String s = "ABCDEF";,因此不会有连接
第二条语句将由编译器转换为此代码(或类似的代码)
String s = "ABC";
StringBuilder sb = new StringBuilder(s);
sb.append("DEF");
s = sb.toString();
Run Code Online (Sandbox Code Playgroud)