String、StringBuffer和StringBuilder区别

String、StringBuffer和StringBuilder区别

1、StringBuffer和StringBuilder非常的类似,均表示字符可变序列,方法也一样。

2、String表示不可变的字符序列,效率低,复用性高。

3、StringBuffer表示字符可变序列,效率较高(增删),线程安全,通常用在处理多线程。

4、StringBuilder表示字符可变序列,效率比StringBuffer高,线程不安全,通常用在单线程。

 

应用场景

1、如果字符串需要大量修改,一般使用StringBuilder或StringBuffer

1、如果字符串需要大量修改,在多线程情况,使用StringBuffer

1、如果字符串需要大量修改,在单线程情况,使用StringBuilder

1、如果字符串很少修改,被多个对象引用,使用String,例如配置信息

 

String s1 = "Hello"

String s2= "World"

String s3 = s1 + s2 的内存布局

首先先new StringBuilder,在堆中开辟一个空间,通过appen方法添加,之后看常量池有没有HelloWorld,没有就开个空间存放。堆中指向常量池地址,s3指向堆中的地址。

posted @ 2022-09-20 12:15  伤逝l  阅读(85)  评论(0)    收藏  举报