我可以用以下两条语句来具体解释内存和运行时开销吗?
-
字符串CONST=";字符串常数";;StringBuilder sb1=新StringBuilder((
sb1.append(CONST(; -
StringBuilder sb2=新StringBuilder((
sb2.append("字符串常量"(;
second是否创建字符串对象并添加到字符串池中?有没有任何场景(也考虑许多字符串附加(可以证明一个比另一个好?
这两个版本在内存或运行时开销方面没有区别。
使用看起来可读性或可维护性更强的。如果在许多地方重复使用同一个字符串常量,则该常量很长,或者可能会发生变化,那么提取一个常量可能是合适的。
关于运行时开销,运行两种方法的模拟会产生几乎相同的结果。
我的测试是用10000000000次迭代完成的,运行时是:
- 方法1-95109ms(平均~9.5ns(
- 方法2-95002ms(平均~9.5ns(
所以性能上绝对没有明显的差异。
因此,正如@LouisWasserman在他们的回答中所说,只需使用能保持代码干净易读的代码即可。