String、Stringbuffer、StringBuffer回顾

前言

  久了没用到,一下子就忘了。。,参考文章:https://www.cnblogs.com/su-feng/p/6659064.htmlhttps://baijiahao.baidu.com/s?id=1629804867201303563&wfr=spider&for=pc

 

区别:这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。

 

一、运行速度:  StringBuilder > StringBuffer > String  

String最慢的原因

  String为字符串常量,

  StringBuilder和StringBuffer均为字符串变量,

  String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

 

二、线程安全 :  StringBuilder是线程不安全的,而StringBuffer是线程安全的

  不严格要求安全时,常用效率比较高的StringBuilder

 

三、总结:

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

 

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

 

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

 

posted @ 2019-06-21 09:50  doraemonlin  阅读(145)  评论(0编辑  收藏  举报
Live2D
//页脚Html代码