服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - JAVA教程 - Java中StringBuffer和StringBuilder区别

Java中StringBuffer和StringBuilder区别

2019-12-21 14:51junjie JAVA教程

这篇文章主要介绍了Java中StringBuffer和StringBuilder区别,本文只介绍了它们之间的核心区别,需要的朋友可以参考下

早先用Java的时候,知道有个类叫StringBuffer,用来拼接较长的字符串。转到C#之后,也有一个似类功能的类叫作StringBuilder,简写都是sb,非常好记。

再后来转移回Java的时候,发现Java也有了StringBuilder,于是就好奇了一下为什么在StringBuffer之后又推出了StringBuilder。

原来Java的StringBuilder(和C#一样)是非线程安全的,而早先的StringBuffer具有一定的线程安全属性。当然,推出StringBuilder,主要也是因为它没有必要在多线程的情况下使用。

常见的StringBuilder(或者StringBuffer)的用例是:

?
1
2
3
4
5
6
7
public String toString() {
 return new StringBuilder()
  .append("Name: " + name)
  .append("Foo: " + foo)
  .append("Bar: " + bar)
  .toString();
}

在这种情况下,StringBuilder都不是一个类成员,它只是一个局部变量,根本谈不上多线程的问题。

于是,StringBuilder的引入带来了非常大的性能提升,而且一点安全问题也没有……

延伸 · 阅读

精彩推荐