String是字符串常量,拼接的时候其实是JVM生成新的字符串对象
效率上String<StringBuffer<StringBuilder,StringBuffer是线程安全的,StringBuilder是线程非安全的,
当字符串缓冲区被多线程操作时,JVM不能保证StringBuilder是线程安全的,但是StringBuffer是可以安全执行的,但是大多数情况下是单线程操作,考虑到效率问题,一般都是用StringBuilder
对于三者使用的总结:
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer