当前位置: 首页 > 面试题库 >

Java如何使用“ +”连接字符串?

蔚学真
2023-03-14
问题内容

我使用来了解Java与+=运算符的工作方式StringBuilder
它是用同样的("a" + "b")操作?


问题答案:

不。使用StringBuilder和做不一样"a" + "b"

在Java中,字符串实例是不可变的。

因此,如果您这样做:

String c = "a" + "b";

每次连接时都在创建新的字符串。

另一方面,StringBuilder就像一个缓冲区,可以在追加新Strings时根据需要增长。

StringBuilder c = new StringBuilder();
c.append("a");
c.append("b"); // c is only created once and appended "a" and "b".

经验法则是(由于我的评论而改变):

如果要进行大量连接(例如,在循环内进行连接,或生成由多个字符串连接的变量组成的大型XML),请使用StringBuilder。否则,简单的串联(使用+运算符)就可以了。

编译此类代码时,编译器优化也起着重要作用。

这是
对该主题的进一步说明。



 类似资料:
  • 问题内容: 我使用的是Oracle 10g,并具有以下表结构:id,段落 我想按ID分组并连接段落。每个段落可能超过1500个字符。 当我尝试wm_concat函数时,它抱怨字符串缓冲区太小。实际上,我在Oracle网站上尝试了许多示例,但所有示例均因字符串缓冲区太小而失败。 我该如何解决? 问题答案: 因此,我猜是错误的所在,我可以看到您在这种情况下如何认为这不适用于您。 但是,这是的错。这是一

  • 问题内容: 如何在python中连接字符串? 例如: 将其与形成字符串: 问题答案: 最简单的方法是 但为了提高效率,请参阅:https : //waymoot.org/home/python_string/

  • 问题内容: 当我编译此代码片段时。 产生以下字节码 因此常量池中已经存在字符串文字“ string”,该常量池在此行被压入堆栈。 引用JSL 从JLS§4.12.4-最终变量: 基本类型或String类型的变量是最终变量,并使用编译时常量表达式(第15.28节)进行了初始化,该变量称为常量变量。 同样来自JLS§15.28-ConstantExpression: 使用String#intern()

  • 问题内容: 我正在尝试连接Java中的字符串。为什么这不起作用? 问题答案: 你可以使用运算符来连接字符串: 被隐式转换为。

  • 我正在尝试用Java连接字符串。为什么这不起作用?

  • 问题内容: 基本上,问题是如何从中得到: 对此: 问题答案: http://dev.mysql.com/doc/refman/5.0/zh/group-by- functions.html#function_group- concat 在上面的链接中:该函数返回一个字符串结果,其中包含来自组的串联的非NULL值。如果没有非NULL值,则返回NULL。