String是不可变类,即String对象一旦被创建,其值无法改变
StringBuilder和StringBuffer均为可变类,当对象被创建后仍然可以进行修改
所以,当一个字符串需要经常被修改时,最好不要使用String,否则会生成很多无用的对象,因此会影响程序的性能
接下来,StringBuilder和StringBuffer之间有什么区别呢?
StringBuilder不是线程安全的,而StringBuffer是线程安全的
总结
- 执行效率(执行速度)上,StringBuilder > StringBuffer > String
说明,为什么String是最慢的呢?每次使用String时,都是在不断的创建新的字符串对象,那旧字符串就会变成垃圾被回收掉。所以说String是最慢的 - StringBuilder和StringBuffer相比,StringBuilder是非线程安全的,而StringBuffer是线程安全的
所以说,
(1) 如果要操作少量的数据,使用String
(2) 单线程操作大量数据,使用StringBuilder
(3) 多线程操作大量数据,使用StringBuffer