【java面试题】String、StringBuffer、StringBuilder
String是final修饰的,不可变,每次操作都会产生新的String对象
StringBuffer 和 StringBuilder 都是在原对象上操作
所以如果经常需要改变字符串内容时,就可以使用StringBuffer 和 StringBuilder
StringBuffer 和 StringBuilder的区别
StringBuffer是线程安全的 和 StringBuilder是线程不安全的
对于一个对象来说线程安不安全是什么意思呢?
在多线程环境,所要创建的变量是共享的变量,并且结果是预期结果,不会出现并发问题,
之所以StringBuffer是线程安全的,是因为StringBuffer方法都是synchronized修饰的
性能: StringBuilder > StringBuffer > String
那么在什么时候使用StringBuffer 和 StringBuilder呢?
错误回答:在程序考虑线程安全时使用StringBuffer ,程序考虑性能时使用StringBuilder
错误的原因是没有程序是不考虑线程安全或不考虑性能的