String 、StringBuffer、StringBuilder区别及使用场景
区别
- String是final修饰的,不可变,每次操作都会产生新的String对象
- StringBuffer和StringBuilder都是在原对象上操作
- StringBuffer是线程安全的,StringBuilder线程不安全的
- StringBuffer方法都是synchronized修饰的
性能比较
StringBuilder > StringBuffer > String
使用场景
经常需要改变字符串内容时使用后面两个
优先使用StringBuilder,多线程使用共享变量时使用StringBuffer