String、stringBuilder、stringBuffer都是操作字符串的,string操作字符串的长度是固定不可变的,因为其底层使用的是固定不可变的字符数组(final char[])。stringBuilder和stringBuffer都是操作可变长度字符串,支持字符串拼接,拼接方式使用append来完成,底层的字符串数组没有使用final修饰。
- 运行速度:StringBuilder > StringBuffer > String
- String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。
- String:适用于少量的字符串操作的情况。
- StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况(线程不安全)。
- StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况(线程安全)。