2 dzq boyka Dzq_Boyka 于 2015.07.22 11:06 提问

StringBuilder和StringBuffer

StringBuilder和StringBuffer
两者的区别及两者常用的方法
在什么情况下使用哪个(换言之~分别适用于什么情况)?

5个回答

CSDNXIAOS
CSDNXIAOS   2015.07.22 11:10
已采纳

------- android培训、java培训、期待与您交流! ----------

StringBuffer
StringBuffer是一个线程安全的字符串缓冲区。
和String不同的是,它在创建后可以修改。

构造方法
StringBuffer有4个重载的构造方法,可以通过String、int和实现了CharSqunence接口的对象实现初始化。

......
答案就在这里:StringBuffer和StringBuilder
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.23 00:06
  1. 在执行速度方面的比较:StringBuilder > StringBuffer
  2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。
  3. StringBuilder:线程非安全的   StringBuffer:线程安全的 当我们在字符串缓冲去被多个线程使用是,jvm不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

对于三者使用的总结:1.如果要操作少量的数据用 = String
       2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
       3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

Dzq_Boyka
Dzq_Boyka 谢谢!不错!辛苦!
接近 3 年之前 回复
lm1232123
lm1232123   2015.07.22 11:12

StringBuilder线程不安全,StringBuffer 线程安全,但是StringBuilder的效率要高一点,两者都是对字符串连接进行操作,类功能基本相似,

Dzq_Boyka
Dzq_Boyka 了解,多谢老兄!
接近 3 年之前 回复
tongyi55555
tongyi55555   2015.07.22 12:04

基本上都是使用stringbuilder

Dzq_Boyka
Dzq_Boyka 谢谢!good!!
接近 3 年之前 回复
sina_2831808769
sina_2831808769   Rxr 2015.07.25 13:58

StringBuilder线程不安全,StringBuffer 线程安全,但是StringBuilder的效率要高一点,两者都是对字符串连接进行操作,类功能基本相似,

Dzq_Boyka
Dzq_Boyka 谢!
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
StringBuilder的用法及String,StringBuffer与StringBuilder的区别
  声明:本文大部分内容为参考别人的,自己简单汇总整理了一下。   String 字符串常量   StringBuffer 字符串变量(线程安全)   StringBuilder 字符串变量(非线程安全)   简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因为String类的声明是:public final,因此在每...
StringBuffer与StringBuilder之间的区别
public class Test { public static void main(String[] args) { StringBuffer strBuffer = new StringBuffer(); strBuffer.append("StringBuffer"); strBuffer.append(" "); strBuffer.append("Test"
Java String,StringBuilder,StringBuffer的区别
三者的区别:String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响
String/StringBuffer/StringBuilder详细对比
众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!!   【镜头1】 String对象的创建        1、关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world"); 问题是参数"Hello world
StringBuffer与StringBuilder的线程安全性验证
线程安全性是指,当对一个复杂对象进行某种操作时,从操作开始到操作结束之前,该对象会经历若干中间状态,直到操作完全结束,该对象才会会到完全可用的状态。如果其他线程能够访问处于不可用中间状态的对象,使该对象产生无法预料的结果,则称该对象线程不安全,反之则称其为线程安全。   所以这个简单程序的考察点: 线程安全性的理解Java并发编程基础主动思考和分析能力,以及去求证的主动性,而不是被动
StringBuffer 与 StringBuilder 区别与联系及源码分析
StringBuffer和StringBuilder的共同点: 1、都是用于操作字符串,使用这两个而不使用String的原因是因为String是Final类型,当对字符串操作较多时采用StringBuffer或者StringBuilder。 String Final源码,在创建String对象传递的值,value定义的是final 的char[]; private final c
String StringBuilder StringBuffer三者的特点与及速度阐述
String StringBuilder StringBuffer第1点 String是一个字符串常量,所以他是不可变的。第2点 StringBuilder线程不安全,但是速度最快。第3点 StringBuilde线程安全, 但是速度上会比StringBuilder慢,但还是比String快。对应第1点的例子:1 String firstString = "abc"; 2 first
String、Stringbuffer与Stringbuilder的区别
1、在执行速度上:Stringbuilder->Stringbuffer->String 2、String是字符串常量       Stringbuffer是字符串变量       Stringbuilder是字符串变量      有可能我们会疑惑String怎么是字符串变量。看以下代码:      String str = adc;      str = str + “ef”
String,StringBuffer,StringBuilder个人认为较重要的区别
今天在整理不可变对象知识点时,突然看到了String,StringBuffer,StringBuilder三者的区别,这里就挑一些我认为比较重要的点记录一下,方便日后查看。     String,StringBuffer,StringBuilder,都是final类,不允许被继承,在本质上都是字符数组,不同的是,String的长度是不可变的而后两者长度可变,在进行连接操作时,String每次
String ,StringBuffer和StringBuilder最佳用法
String  首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象。查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象。       字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下””、null、new Str