java连接字符串有多种方式,比如+操作符,StringBuilder.append方法,这些方法各有什么优劣(可以适当说明各种方式的实现细节)?
按照高效的原则,那么java中字符串连接的最佳实践是什么?
有关字符串处理,都有哪些其他的最佳实践?
+
操作和 StringBuilder
都能连接字符串,+
的优势在于:语法简单,容易书写。缺点是:对于动态生成且合并次数过多的字符串,优化不足,需要反复申请内存。StringBuilder
的优势在于:能够预先分配内存,对于需要进行多次拼接的字符串,优化了拼接时的内存和时间的消耗。缺点是:书写复杂,对于较简单且确定的字符串,运行效率反而比 +
差。
你可以这么理解:绝大多数情况下,如果字符串拼接在循环中(也就是需要反复进行),则偏向于使用 StringBuilder
,而只是常规的拼接,则使用 +
即可。另外,如果需要在多个方法间传递字符串进行组装,则传递 StringBuilder
比较合适。