简介: 常用字符串相关构建类的使用和区别
- 问:String,StringBuffer与StringBuilder的区别?分别在哪些场景下使用
- 考点:是否有举一反三的思维,常用类的掌握情况
- 答案:
三者都是final,不允许被继承
在本质上都是char[] 字符数组实现
String,StringBuffer与StringBuilder中,String是不可变对象,另外两个是可以变的;
分别在什么场景下使用
StringBuilder 效率快,因为不需要加锁,不具备线程安全.(多线程情况下,要注意使用,会不安全)
StringBuffer 里面操作方法用synchronized,效率相对低,但是线程安全的
使用场景:
操作少量数据用String
单线程下操作大量的字符串用StringBuilder,虽然线程不安全,但是不影响
多线程情况下操作大量的字符串,且需要保证线程安全,则用StringBuffer