一个小问题,但我真的很好奇。
使用
"a string with a char: " + 'x'
和
"a string with a char: " + "x"
有什么本质上的优劣之分吗?它们都可以工作,但我想知道是否有任何性能或效率方面的影响--即使它们很小。
谢谢。
一个小问题,但我真的很好奇。
使用
"a string with a char: " + 'x'
和
"a string with a char: " + "x"
有什么本质上的优劣之分吗?它们都可以工作,但我想知道是否有任何性能或效率方面的影响--即使它们很小。
谢谢。
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 将会被用于两个字符串的拼接。就这些。
我非常确定它们都会生成相同高效的字节码。编译器很聪明。
所以,如果有差异(我不确定),编译器会将其消除。
"a string with a char: x"
。 - Radiodef
'x'
仍有好处;如果您只想输入一个字符,编译器会友好地提示您打错了。 - k1eran