首页 > 技术文章 > String、StringBuilder、StringBuffer有何区别

westlife-11358 2019-08-07 11:05 原文

1、在字符串不经常发生变化的业务场景优先使用String(代码更清晰简洁)。如常量的声明,少量的字符串操作(拼接,删除等)。

2、在单线程情况下,如有大量的字符串操作情况,应该使用StringBuilder来操作字符串。不能使用String"+"来拼接而是使用,避免产生大量无用的中间对象,耗费空间且执行效率低下(新建对象、回收对象花费大量时间)。如JSON的封装等。

3、在多线程情况下,如有大量的字符串操作情况,应该使用StringBuffer。如HTTP参数解析和封装等。

 

所以,分清楚了在使用,少量拼接用String、大量拼接不考虑线程安全用StringBuilder、大量拼接来考虑线程安全用StringBuffer。(String底层还是用了StringBuilder,所以,尽量用StringBuilder!!)

推荐阅读