博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
StringBuffer,StringBuilder的区别
阅读量:3958 次
发布时间:2019-05-24

本文共 559 字,大约阅读时间需要 1 分钟。

**

StringBuffer与StringBuilder中的方法和功能完全是等价的。

**

StringBuffer中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而StringBuilder没有这个修饰,可以被认为是线程不安全的。

StringBuffer的append()方法的源码中我们我可以看到,

@Override
//增加了synchronized 关键字
public synchronized StringBuffer append(int i) {
toStringCache = null;
super.append(i);
return this;
}
StringBuilder的append()方法的源码中并没有添加synchronized关键字修饰:

@Override

public StringBuilder append(int i) {
super.append(i);
return this;
}
总结
在单线程程序下,StringBuilder效率更快,因为它不需要加锁,但同时它不具备多线程安全,有可能造成结果的不准确;而StringBuffer则每次都需要判断锁,效率相对更低,但同时是线程安全的,使用的时候可以根据具体的情况来判断使用;

转载地址:http://bfmzi.baihongyu.com/

你可能感兴趣的文章
epoll使用详解
查看>>
epoll
查看>>
The AnimationClip 'Walk' used by the Animation component 'Pig' must be marked as Legacy.
查看>>
《Linux内核设计与实现》- Linux的进程
查看>>
《Linux内核设计与实现》- 进程的调度
查看>>
inet_ntoa()
查看>>
POSIX消息队列mq_open问题
查看>>
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>
linux内核空间和用户空间的区别及交互
查看>>
如何写好应用型学术论文
查看>>
如何查看进程的各种限制
查看>>
64位int类型用printf输出问题
查看>>
网络后台开发面试题目
查看>>
Linux 共享内存限制的查看与设置
查看>>
进程的状态转换
查看>>
如何查看进程的信息(线程数)
查看>>