String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。从运行速度来讲,运行速度的快慢为StringBuilder > StringBuffer > String.
StringBuilder 是线程不安全的,StringBuffer是线程安全的,StringBuffer中很多方法可以带有synchronized关键字,如果进行的操作是多线程的那么就要使用StringBuffer,但是在单线程的情况下,可以使用Stringbuilder。
- String:适用于少量的字符串操作的情况
- StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
- StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况