StringBuilder 和 StringBuffer 的区别主要区别是什么?
在决定其中任何一个时是否存在任何性能问题?StringBuffer
StringBuilder
网友回答:
基本上,方法是同步的,而不是同步的。StringBuffer
StringBuilder
操作“几乎”相同,但在单个线程中使用同步方法是矫枉过正的。
差不多就是这样了。
引用来自 StringBuilder API:
此类 [StringBuilder] 提供了与 StringBuffer 兼容的 API,但不保证同步。此类设计用于在单个线程使用字符串缓冲区的地方用作 StringBuffer 的直接替代(通常情况如此)。在可能的情况下,建议优先使用此类而不是 StringBuffer,因为它在大多数实现下会更快。
所以它被用来代替它。
和 也发生了同样的情况。Vector
ArrayList
网友回答:
StringBuffer
是同步的,不是。StringBuilder
网友回答:
StringBuilder
比它快,因为它不是.StringBuffer
synchronized
下面是一个简单的基准测试:
public class Main {
public static void main(String[] args) {
int N = 77777777;
long t;
{
StringBuffer sb = new StringBuffer();
t = System.currentTimeMillis();
for (int i = N; i --> 0 ;) {
sb.append("");
}
System.out.println(System.currentTimeMillis() - t);
}
{
StringBuilder sb = new StringBuilder();
t = System.currentTimeMillis();
for (int i = N; i > 0 ; i--) {
sb.append("");
}
System.out.println(System.currentTimeMillis() - t);
}
}
}
测试运行给出 for 与 for 的数字。2241 ms
StringBuffer
753 ms
StringBuilder
模板简介:该模板名称为【StringBuilder 和 StringBuffer 的区别主要区别是什么?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。