String,StringBuffer,StringBuilder区别

1、类型区别

String 是字符串常量

StringBuffer是字符串变量

StringBuilder是字符串变量

2、运行速度

String < StringBuffer < StringBuilder

     原因:String是字符串常量,并且String类型不是基本类型,实际可以看做是一个对象,在拼接的时候在会不停的创建对象。所以String的运行效率相对于另外的两个低。

String a = "123"
String b = "123"
//a 和 b 只是值相同,地址不同

String的equals()被重写

3、线程安全

              StringBuilder:线程非安全的

    StringBuffer:线程安全的

    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。

 

 4. 对于三者使用的总结

         1.如果要操作少量的数据用 = String

 

     2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

 

            3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

 

猜你喜欢

转载自www.cnblogs.com/lu51211314/p/9076669.html