同:都可以对字符串进行操作
异:
1.String是不可变对象,而StringBuilder和StringBuffer是可变对象。
2.在进行因为每当String进行操作改变的时候,都会在head里面新建String对象,所以在进行频繁的操作(比如插入,删除等)时,StringBuilder和StringBuffer会比String效率快很多。
3.一般来说,StringBuilder的效率会比StringBuffer高一些。但是StringBuilder在多线程环境下是不安全的。
所以:
1.对字符串操作较少时用String
2.字符串操作较多时,且多线程用StringBuffer
3.字符串操作较多,且单线程用StringBuilder