StringBuilder StringBuffer String辨析

StringBuilder 是单线程版的StringBuffer, 可变,速度快,但多线程下不安全。

StringBuffer 是线程安全的可变String实现。

String不可变,每次改变时都新建一个对象。速度相比StringBuilder慢。

因此单线程处理可变String,用StringBuilder。多线程用StringBuffer。

前两者必须new来新建,不能 = “”(因为底层为数组实现);

时间: 2024-10-03 13:47:57

StringBuilder StringBuffer String辨析的相关文章

Java String,StringBuilder和StringBuffer的区别 StringBuilder > StringBuffer> String

可以证明,字符串操作是计算机程序设计中最常见的行为. String:不可变的对象,对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原String对象GC回收.StringBuffer 字符串变量(线程安全),适用于多线程程序中,保证同步性.StringBuilder 字符串变量(非线程安全),适用于单线程程序中,不保证同步性.简要的说, String 类和 StringBuffer/StringBuilder 类的主要性能区别其实在

String,StringBuilder,StringBuffer三者的区别

1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符串变量 StringBuilder:字符串变量 从上面的名字可以看到,String是"字符创常量",也就是不可改变的对象.对于这句话的理解你可能会产生这样一个疑问  ,比如这段代码: 1 String s = "

String/StringBuilder/StringBuffer之间的区别

String:字符串常量StringBuffer:字符串变量StringBuilder:字符串变量三者在执行速度方面比较:StringBuilder>StringBuffer>String String类型是不可改变的对象,当用String操作字符串时,实际上是不断地创建新的对象,原来的对象就会变成垃圾被GC回收,效率比较低.StringBuffer和StringBuilder是字符串变量,是可以改变的对象,当对字符串操作时,实际上是在一个对象上操作,这样不会像String一样创建一些额外的对

(转)String StringBuilder StringBuffer 对比 总结得非常好

来源:http://blog.csdn.net/clam_clam/article/details/6831345 转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了.嘿嘿.... 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通

String ,StringBuilder,StringBuffer

一.String类使用字符数组保存字符串,数组有final修饰,不可变.线程安全 String a="hello";String b=new String("hello"); 第一种在栈内存定义了一个a对象的引用,指向堆内存的值"hello"的内存地址 第二种先在栈内存创建一个"hello"对象,new String又产生了另外一个对象.第一个对象无人引用 上图的解释:String在Java中使用了共享设计,在Java形成一个

String Stringbuilder Stringbuffer的区别

String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以

String StringBuilder StringBuffer 对比 总结得非常好

作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了.嘿嘿.... 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通的类哦!!! [镜头1] String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hell

String StringBuilder StringBuffer 区别

String StringBuilder StringBuffer 区别: String 字符串常量 (可用于少量数据,变化不大的情况) 最慢 不可变类(每次改变都会引起创建新的String类) StringBuffer 字符串变量 线性安全(可多线程使用) 居于中间 可变类 StringBuilder 字符串变量 非线性安全(不支持并发操作,可单线程使用) 最快 可变类

Java中string拼接,StringBuilder,StringBuffer和+

Java中string拼接,StringBuilder,StringBuffer和+,到底哪个更合适? StringBuilder线程不安全,效率较线程安全的StringBuffer高.jdk1.5之前,+操作会产生大量String对象,影响GC的效率,但是jdk1.5之后做了优化,使用+操作符不一定会产生大量String对象,而是自动优化为StringBuilder方式.如果是在一个for循环中进行String拼接,还是不建议使用+操作,因为会大量产生new StringBuilder()对象