String
对象内容不可变, StringBuilder
和 StringBuffer
对象内容可变。
StringBuilder
比 StringBuffer
效率更高, 但StringBuffer
提供线程同步,也就是说,如果多个线程并发访问同一个字符串,即并发调用其方法,应使用StringBuffer
。
StringBuilder
有3个构造函数和30多个方法,StringBuider
和StringBuffer
的构造函数和方法几乎是一样的。
假如字符串不会变化,应使用String
,JVM对String
进行了一些优化,例如共享限定字符串等。
java.lang.StringBuilder | |
---|---|
+StringBuilder() | Constructs an empty string builder with capacity 16. |
+StringBuilder(capacity: int) | Constructs a string builder with the specified capacity. |
+StringBuilder(s: String) | Constructs a string builder with the specified string. |
其中,capacity 是一个string builder最多能容纳的字符数(如果超过就要进行容量扩充) .
Introductuion to java programming 10.th editon 10.11