Sting、StringBuffer、StringBuilder
程序员文章站
2022-03-13 17:10:35
(1)String是字符串常量,一旦创建之后不可更改;StringBuffer和StringBuilder是字符串变量,可以更改。String的不可变,所以适合作为Map的键。 (2)StringBuilder 是线程不安全的,StringBuffer是线程安全的,使用了Synchronized关键 ......
(1)string是字符串常量,一旦创建之后不可更改;stringbuffer和stringbuilder是字符串变量,可以更改。string的不可变,所以适合作为map的键。
(2)stringbuilder 是线程不安全的,stringbuffer是线程安全的,使用了synchronized关键字,即线程锁。
(3)字符串拼接时的效率:stringbuilder > stringbuffer > string。
(4)如果操作少量的数据用 string,单线程下操作大量数据用stringbuilder,多线程下操作大量数据用stringbuffer。
推荐阅读
-
浅谈C# StringBuilder内存碎片对性能的影响
-
c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
-
String、StringBuffer和StringBuilder类的区别
-
java中String和StringBuffer的区别
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
-
浅谈Java StringBuilder为什么线程不安全
-
详解.NET中string与StringBuilder在字符串拼接功能上的比较
-
Java中String、StringBuffer、StringBuilder的区别(转)
-
为什么 Java 8 中不需要 StringBuilder 拼接字符串
-
C#中String StringBuilder StringBuffer类的用法