String 指向的是一个不可改变的字符串
String str1 = "aaa";
str1 = "aaa"+"bbb";
此时str1指向的是内存中的一个新的地址:"aaabbb",原来的"aaa"字符串仍然存在
而StringBuffer 指向的是一个可变的字符串
StringBuffer buffer = "aaa";
buffer += "bbb";
此时"aaa"被修改为"aaabbb"
String和StringBuffer的效率在数据量大的时候就会看出区别了
构造一个for循环,循环10000次,改变String和StringBuffer的值,就会看出效率上的区别了
而StringBuilder和StringBuffer的作用一样,唯一的区别是
StringBuffer 是线程安全(同步)的
StringBuilder不是线程安全的
当不涉及到线程安全时,最好使用StringBuilder
本文详细介绍了Java中String、StringBuffer与StringBuilder的区别、效率对比及适用场景,特别强调了线程安全与多线程环境下的最佳实践。

被折叠的 条评论
为什么被折叠?



