stringBuillder append(CONST) 和 append( "new string" 的区别



我可以用以下两条语句来具体解释内存和运行时开销吗?

  1. 字符串CONST=";字符串常数";;StringBuilder sb1=新StringBuilder((
    sb1.append(CONST(;

  2. StringBuilder sb2=新StringBuilder((
    sb2.append("字符串常量"(;

second是否创建字符串对象并添加到字符串池中?有没有任何场景(也考虑许多字符串附加(可以证明一个比另一个好?

这两个版本在内存或运行时开销方面没有区别。

使用看起来可读性或可维护性更强的。如果在许多地方重复使用同一个字符串常量,则该常量很长,或者可能会发生变化,那么提取一个常量可能是合适的。

关于运行时开销,运行两种方法的模拟会产生几乎相同的结果。

我的测试是用10000000000次迭代完成的,运行时是:

  • 方法1-95109ms(平均~9.5ns(
  • 方法2-95002ms(平均~9.5ns(

所以性能上绝对没有明显的差异。


因此,正如@LouisWasserman在他们的回答中所说,只需使用能保持代码干净易读的代码即可。

最新更新