String和StringBuffer、StringBuilder的区别在于String的底层被final修饰过是不可变字符串。每次修改都会产生一个新的String对象,并且指针指向新的对象。而StringBuffer和StringBuilder可以在原有的基础上进行操作。所以在经常改变字符串内容的情况下不要使用String。
StringBuffer与StringBuilder都是可变字符串类在本质上是没有区别的,最大的区别在于StringBuffer是线程安全的,效率上比StringBuilder低。
使用环境:
操作小量的数据使用:String
单线程操作大量数据使用:StringBuilder
多线程操作大量数据使用:StringBuffer