“带有char的字符串:”+'c'比带有char的字符串更好或更差:“+ c”?

时间:2013-11-20 15:04:54

标签: java string character concatenation

一个小问题,但我真的很好奇。

有什么本质上更好或更差的东西

"a string with a char: " + 'x'

相比

"a string with a char: " + "x"

他们都工作,但我想知道是否有任何表现或效率影响 - 尽管可能很小。

感谢。

2 个答案:

答案 0 :(得分:2)

public void test(){ 
    String str1 = "appl" + 'e';
    String str2 = "banan" + "a";
}

字节码无变化:

public void test();
    Code:
       0: ldc           #2                  // String apple
       2: astore_1      
       3: ldc           #3                  // String banana
       5: astore_2      
       6: return

我应该提一下,如果你将连接放在一个循环中,那么StringBuilder将用于两者。就是这样。

答案 1 :(得分:0)

我非常确定它们都会生成相同的高效字节码。编译器很聪明

因此,如果存在差异(我不确定),编译器将删除它