java - 再次在字符串追加 vs concat vs +

标签 java string performance coding-style

可能是我正在 split 头发,但我想知道以下情况:

String newString = a + b + c;  //case 1


String newString = a.concat(b).concat(c);   //case 2

StringBuilder newString = new StringBuilder(); //case 3
newString.append(a);
newString.append(b);    
newString.append(c);

哪个最好用?

我的意思是无论如何

读到这些,其他帖子说案例 3 并不是最佳性能,其他人认为案例 1 最终会出现在案例 3 中等等。

更具体一点。

例如,抛开一切不谈,如果您必须维护他的代码,哪种风格更适合从其他程序员那里看到?

或者您认为哪个编程效率更高?
或者你会认为更快等等。

我不知道该怎么表达。

一个答案,例如案例 3 可能更快,但绝大多数程序员更喜欢案例 1,因为它最易读,如果详细阐述也可以接受

最佳答案

案例1简洁,表达意图清晰,相当于案例3。

案例 2 效率较低,可读性也较差。

案例 3 几乎与案例 1 一样有效,但更长,可读性更差。

仅当您必须在循环中进行连接时,才更好地使用案例 3。否则,编译器会将案例 1 编译为案例 3(除了它使用 new StringBuilder(a) 构造 StringBuilder),这使得它比案例 3 更高效)。

关于java - 再次在字符串追加 vs concat vs +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962482/

相关文章:

javascript - 动态/自动 Javascript 和 CSS 组合和缩小

java - Eclipse 无法解析类型,但类位于构建路径上

java - 无法在 Spring 中初始化 bean 类

css - 内置函数不适用于评估的字符串,为什么?

php - 将字符串编码为字符代码

android - performTraversals 递归的原因,egl 缓冲区交换时间长

java - 在指定时间运行任务的调度算法

java - 创建 JSONObject 时 org.json 未报告的异常

c# - 如何在可选扩展名之前将随机字符串附加到文件名?

Mysql DML 性能