java - 在 StringBuffer 中追加或 + 运算符?

标签 java string

在我的项目中有一些使用StringBuffer对象的代码片段,其中一小部分如下

StringBuffer str = new StringBuffer();

str.append("new " + "String()");

所以我对 append 方法和 + 运算符的使用感到困惑。

即下面的代码可以写成

str.append("new ").append("String()");

那么上面的两行是一样的吗?(功能上是但是)或者它们有什么特别的用法吗?即性能或可读性或???

谢谢。

最佳答案

那种情况下,使用第一种形式效率更高——因为编译器会将其转换为:

StringBuffer str = new StringBuffer();
str.append("new String()");

因为它连接常量。

还有一些更一般的要点:

  • 如果这些表达式中的任何一个不是常量,您最好(性能方面)两次调用 append,以避免无缘无故地创建中间字符串<
  • 如果您使用的是最新版本的 Java,通常首选 StringBuilder
  • 如果您要立即附加一个字符串(并且您在构建时知道它是什么),您可以将它传递给构造函数

关于java - 在 StringBuffer 中追加或 + 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3421720/

相关文章:

ruby - 如果一个空字符串为真有什么好处?

JavaFX Webview youtube 视频错误

java - 使用 Hibernate 更新数据库表的更快方法(Java 8 减少?)

regex - 在 grepWin 中查找带点的文本字符串或部分文本

java - 检查字符串中是否存在字符集 - 改进

java - 按之间的数字分割字符串

java - 读取日历java并再次打印

java - ANT和EJB 3.0中单元测试依赖注入(inject)的解决方案

Java - 私有(private)内部类的对象作为外部类构造函数的参数

java - 一段代码的后置条件