String,StringBuild,StringBuffer的区别
速度方面
StringBuild>StringBuffer>String
为什么String执行速度最慢?
String: 字符串常量
StringBuffer: 字符串变量
StringBuild: 字符串变量
字符串常量: 不可改变 对象
字符串变量: 可以改变变量
Stringbuild和StringBuffer的比较
StringBuild是非线程安全的。
StringBuffer是线程安全的。
当我们的字符串缓冲被多个线程使用时,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是StringBuffer可以保证线程是安全的。
当然大多数情况下我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用哪个StringBuffer,就是速度的原因。
对于三者使用的总结
1.如果是操作少量的数据用String
2.如果是单线程操作字符串缓冲区操作大量的数据用StringBuilder
3.如果是多线程操作字符串缓冲区操作大量的数据用StringBuffer