我使用来了解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。