![](https://i-blog.csdnimg.cn/blog_migrate/3b890a0a9b33f0b8269f607e87086963.png)
String:String字符串是常量,String作为方法形参传递,不会改变实际参数,一旦赋值就不能被改变,每次对String的操作都会生成新的String对象,这样不仅效率低下,而且会浪费有限的内存空间,所以String适用于少量的字符串操作的场景。
StringBuffer:StringBuffer是线程安全的可变字符序列,能够被多次修改且不会产生新的未使用的对象,在字符串缓冲区执行效率底下,所以StringBuffer适用于多线程下在字符缓冲区进行大量操作的场景。
StringBuilder:StringBuilder是线程不安全的类,能够被多次修改且不产生新的未使用的对象,在单线程中使用,不同步,但是执行效率高,所以StringBuilder适用于单线程下在字符缓冲区进行大量操作的场景。
从上面关于对String、StringBuffer、StringBuilder的讲解,可知String、StringBuffer、StringBuilder是什么。
①String不可变、StringBuffer和StringBuilder可变;
②String适用于少量的字符串操作的场景、StringBuilder适用于单线程下在字符缓冲区进行大量操作的场景、StringBuilder适用于单线程下在字符缓冲区进行大量操作的场景。