素材牛VIP会员
Java字符串连接最佳实践?
 间***p  分类:Java代码  人气:789  回帖:5  发布于6年前 收藏
  1. java连接字符串有多种方式,比如+操作符,StringBuilder.append方法,这些方法各有什么优劣(可以适当说明各种方式的实现细节)?

  2. 按照高效的原则,那么java中字符串连接的最佳实践是什么?

  3. 有关字符串处理,都有哪些其他的最佳实践?

 标签:字符串java

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv2 入门
一***句 职业无 6年前#1

直接贴江南白衣大大的了:
http://calvin1978.blogcn.com/...

Lv3 码奴
上***水 职业无 6年前#2

这么晚才来贴链接真是抱歉.. Java 字符串拼接效率分析及最佳实践
这篇文章里贴了我对java中几种字符串拼接的比较及性能底下的原因分析,并贴了几个我知道的字符串处理最佳实践。

Lv3 码奴
默***H 学生 6年前#3

+ 操作和 StringBuilder 都能连接字符串,
+ 的优势在于:语法简单,容易书写。缺点是:对于动态生成且合并次数过多的字符串,优化不足,需要反复申请内存。
StringBuilder 的优势在于:能够预先分配内存,对于需要进行多次拼接的字符串,优化了拼接时的内存和时间的消耗。缺点是:书写复杂,对于较简单且确定的字符串,运行效率反而比 + 差。

你可以这么理解:绝大多数情况下,如果字符串拼接在循环中(也就是需要反复进行),则偏向于使用 StringBuilder ,而只是常规的拼接,则使用 + 即可。另外,如果需要在多个方法间传递字符串进行组装,则传递 StringBuilder 比较合适。

Lv5 码农
16***50 软件测试工程师 6年前#4

使用+来拼接字符串,使用javap命令来反编译代码,可以看出实际上编译器会自动创建StringBuilder,调用它的append方法来拼接字符串。
如果在一个for循环语句中,循环100次,使用+来拼接字符串的话,就会创建100次StringBuilder对象,这样就很消耗内存,所以,在进行复杂字符串拼接的时候,还是建议使用StringBuilder来拼接字符串,就算循环1000次,也只是创建一次StringBuilder对象。

Lv4 码徒
这***3 站长 6年前#5

你可以用 javap 命令看一下+StringBuilder 之间的区别。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取