面试官:谈谈你对String,StringBuffer,StringBuilder的区别
我:直接把这篇文章甩他脸上
你:
首先,我们都知道String是final修饰的,不可变的,每次操作对象的时候都会产生新的String对象,而其余的两个都是在原来的对象上操作
其次,StringBuffer是线程安全的,因为它是加了synchronized锁的,而StringBuilder是线程不安全的
性能:StringBuilder>StringBuffer>String
下面给出一个场景:经常改变字符串内容怎样使用它们?
通常优先使用StringBuilder,多线程环境下使用共享变量的则使用StringBuffer