Java多行字符串形成
我绝不是一个java程序员,所以这看起来很基本 当您希望代码行保持简短时,以下哪项“更好”Java多行字符串形成,java,string-concatenation,Java,String Concatenation,我绝不是一个java程序员,所以这看起来很基本 当您希望代码行保持简短时,以下哪项“更好” String str = "First part of a string."; str += " Second part of string."; 或 我想我的问题是+=和+是否都生成一个新的字符串对象?如果他们真的这样做了,那么两者都不是更好的,这只是偏好的问题。我举的例子将是一个很好的现实世界使用的例子。我不想用这两种方法进行3次连接到1000次连接的比较 谢谢我更喜欢第二种方法。原因是编译器可能会
String str = "First part of a string.";
str += " Second part of string.";
或
我想我的问题是+=和+是否都生成一个新的字符串对象?如果他们真的这样做了,那么两者都不是更好的,这只是偏好的问题。我举的例子将是一个很好的现实世界使用的例子。我不想用这两种方法进行3次连接到1000次连接的比较
谢谢我更喜欢第二种方法。原因是编译器可能会在编译时将连接的结果合并成一个字符串,而第一个方法可能在运行时完成(取决于实际实现)。这是一件小事,除非您执行了数百万次操作。以下是我编译后反编译的结果:
public static void main(String[] args) {
String str = "First";
str += " Second";
System.out.println(str);
String str2 = "First" + " Second";
System.out.println(str2);
}
变成:
public static void main(String args[]) {
String s = "First";
s = (new StringBuilder()).append(s).append(" Second").toString();
System.out.println(s);
String s1 = "First Second";
System.out.println(s1);
}
因此第二种方法更好。实际上需要Java编译器在编译时连接第二个示例。请参见和。以下Java的编码约定:
String str = "First part of string. "
+ "Second part of string.";
确保“+”运算符从下一行开始,这样可以提高可读性。
使用这种样式可以获得可读且高效的代码。
希望这有帮助
快乐编码
Brady
我不能为实际的实现说话,但是在我看来,第二个将使连接的优化变得很容易,并且只考虑字符串的两个部分是单文字的,非常棒的家伙,谢谢!我是一名ruby开发人员,用于一般字符串构建(当您需要连接大量字符串时),StringBuilder是一个很好的工具,可以帮助避免原始连接的开销。它肯定会在编译时合并连接的结果。这是必需的行为。编译器需要在编译时连接它。与JVM无关。StringBuilder sb = new StringBuilder();
sb.append("First part");
sb.append("Second part");
System.out.print(sb.toString());
String str = "First part of string. "
+ "Second part of string.";