我通常用以下方式在Java中创建一个String:
String foo = "123456";
但是,我的讲师坚持要求我使用该format方法形成一个String ,如下所示:
String foo = String.format("%s", 123456);
要快得多.
此外,他说使用StringBuilder类更快.
StringBuilder sb = new StringBuilder();
String foo = sb.append(String.format("%s", 123456)).toString();
创建String的最快方法是哪一个,如果有的话?
它们不可能100%准确,因为我可能不完全记得它们.
根据此链接,在代码中的Java 1.5版本中,String s="abc"+"xyz"; 由于使用StringBuilder类进行编译器优化,因此只创建了一个对象.
new StringBuilder().append(abc).append(xyz).toString()
Run Code Online (Sandbox Code Playgroud)
那么这意味着在java 1.5 String之前用于创建三个对象一个"abc",另一个"xyz"和第三个"abcxyz"OR然后它使用其他类如StringBuffer进行类似的编译器优化?
我遇到了两个代码片段,它们创建了一个要进一步执行的查询:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("SELECT * FROM EMPLOYEE ");
stringBuilder.append("WHERE SALARY > ? ");
stringBuilder.append("GROUP BY DEPT");
Run Code Online (Sandbox Code Playgroud)
和
String string = "SELECT * FROM EMPLOYEE " +
"WHERE SALARY > ? " +
"GROUP BY DEPT";
Run Code Online (Sandbox Code Playgroud)
根据我的分析,两个片段都创建了4个对象.第一个片段创建一个StringBuilder对象和3个字符串对象,而第二个片段创建4个String对象.我的分析是否正确?
代码片段如何比代码片段2更有效?