面试的时候,面试官最喜欢问这个问题,面试之前总是把这三者的区别背的滚瓜烂熟,可是全局搜一下现在自己写的代码和同事们写的代码,好像用的都是String,是不是真的是我们太懒了。有好的方法能省很多内存,以后还是要积极用滴~
那么什么时候用StringBuilder代替String呢?
什么时候用StringBuffer?什么时候用StringBuilder?
答案是:
StringBuilder和StringBuffer的使用方法和原理基本一致的,唯一的区别就是StringBuilder是线程不安全的,执行效率要比StringBuffer高,因此当时单线程的时候推荐使用线程不安全的StringBuilder效率更高一些,如果是多线程推荐使用StringBuffer来保证线程安全。
下面总结一下这三者的区别:
1.基本区别
String的对象不可变,StringBuffer和StringBuilder的对象是可变的
2.性能区别