String: 是字符串常量,不可改变。它被用于裁剪,拼接。(当然如果拼接过多的话还是建议用StringBuffer,或者StringBuilder)搜索字符串,比较字符串,截取字符串,转换大小写等。在项目中不经常发生变化的业务场景中,优先使用String。
StringBuffer: 是字符串变量,为了解决String拼接产生多余对象的问题而提供的一个类线程安全的类,可用于拼接、替换、裁剪。在项目多线程环境下运行,如:XML解析,HTTP参数解析与封装等。
StringBuilder: 字符串变量,与StringBuffer的功能一样,但是是非线程安全的。它同StringBuffer使用方式一样,不过在项目中使用的地方建议是单线程的环境下,如:SQL拼接,JSON封装等。
所以在多线程操作时建议使用StringBuffer,单线程操作时可以使用StringBuilder。