最近学习中又遇到了StringBuilder,突然就联想到StringBuffeer和String。于是翻翻笔记还在。那么他们有什么区别?
1.StringBuilder与StringBuffer
StringBuilder:线程非安全,一般在单线程中操作字符串缓冲区使用,速度最快,但JVM不能保证拿安全。
StringBuffer:线程非安全,一般在多线程操作字符串缓冲区。
2.在执行速度方面
StringBuilder > StringBuffer > String
String:字符串常量,不可改变的对象。每当用String操作字符串时,实际上实在不断创建新的对象,原来的则被GC回收,最慢。
StringBuilder:字符串变量。可改变对象。每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,这样就不会像String一样创建一些而外的对象进行操作了。
StringBuffer:字符串变量。可改变对象。和StringBuilder操作类似。