java - 将长日志行分成两部分的性能问题

标签 java string concatenation

当我们为了可读性将一长行代码分成两行时,它会在行之间引入一个加号(如果在文本之间拆分)。 例如,在文本中间分割一条长行,记录一些文本。

那么,鉴于它带来了额外的字符串连接,应该避免这种情况?或者更好的可读性的权衡更重要?

最佳答案

所有常用的 Java 编译器都太成熟了,无法在运行时执行诸如连接字符串之类的愚蠢操作。让我们检查。鉴于此代码:

public class CatStrings {
  public static void main(String [] args) {
    String a = "This is a long long long string broken up "
        + "into parts to see if the compiler "
        + "optimizes the concatenation.";
    System.out.println(a);
  }
}

我的 Java 8 编译器 - Oracle 标准 - 执行正确的操作,如 javap 输出所示:

  stack=2, locals=2, args_size=1
     0: ldc           #2                  // String This is a long long long string broken up into parts to see if the compiler optimizes the concatenation.
     2: astore_1
     3: getstatic     #3                  // Field java/lang/System.out:Ljava/io/PrintStream;
     6: aload_1
     7: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
    10: return

关于java - 将长日志行分成两部分的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540849/

相关文章:

PHP - 在 MySQL 表中存储段落

c++ - 在 C++ 中将整数填充/嵌入到字符串中

Python 循环中的 v 堆栈

java - JavaFX WebView 中的 Youtube

Java 没有关于所有 IANA 时区的信息

java - 执行多个操作并提交

performance - 在大量字符串中查找重复的长子字符串

mysql - 合并多行消除重复并连接多列

python - 在Python中从多个文件夹读取多个csv文件

java - 8x8 骑士之旅 Java 内存不足