StringBuffer 与 StringBuilder的区别

StringBuffer 始于 JDK 1.0

StringBuilder 始于 JDK 1.5

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

StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因

此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程

不安全的。

从 JDK 1.5 开始,带有字符串变量的连接操作(+),JVM 内部采用的是

StringBuilder 来实现的,而之前这个操作是采用 StringBuffer 实现的。

为了达到线程安全的目的在一定程度上会降低程序的性能。

所以在单线程中,StringBuilder的性能要比StringBuffer高。

多线程为了线程安全需要采用StingBuffer。

其实在线程不考虑的情况下,要是程序对性能的要求不高,没必要在意两者的区别。

StringBuffer 与 StringBuilder的区别

时间: 2024-10-11 22:55:55

StringBuffer 与 StringBuilder的区别的相关文章

Java:String、StringBuffer和StringBuilder的区别

Java:String.StringBuffer和StringBuilder的区别 1 String String:字符串常量,字符串长度不可变.Java中String是immutable(不可变)的. String类的包含如下定义: [java] view plain copy /** The value is used for character storage. */ private final char value[]; /** The offset is the first index

【Java】String,StringBuffer与StringBuilder的区别??

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

JAVA中 String 、StringBuffer和StringBuilder 的区别

String 内容定义成 final char[],只能在属性和构造函数中赋值,其它地方不能改变 :String 覆盖实现了 equals . StringBuffer 内容定义成了 char[] ,但没实现 equals. String 和 StringBuffer 的区别是: 1.String 通过构造新的String 实现可变字符串,而 StringBuffer 通过改变内部的内容属性来实现可变字符串. 2.new String("ABC").equals("ABC&q

String、StringBuffer、StringBuilder之间区别

String,StringBuffer,StringBuilder 之间区别 在字符串处理中C#提供了String.StringBuffer.StringBuilder三个类.那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下: 1.  三者在执行速度方面的比较:StringBuilder >StringBuffer > String String一旦赋值或实例化后就不可更改,如果赋予新值将会重新开辟内存地址进行存储.而StringBuffer类使用append和ins

stringbuffer 和 stringbuilder的区别

1. stringbuffer 和 stringbuilder的区别 StringBuffer是线程安全的, 这个类里的所有方法是同步的.这个反过来就会对程序的性能有一定的影响.StringBuilder 在某些方面和StringBuffer功能类似,但是它不是线程安全的,性能比StringBuffer高. Jdk: 一个可变的字符序列.此类提供一个与 StringBuffer 兼容的 API,但不保证同步.该类被设计用作 StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的

StringBuffer类详解(String、StringBuffer、StringBuilder的区别)

StringBuffer类详解 1.类结构: ·        java.lang.Object ·        java.lang.StringBuffer ·        All Implemented Interfaces: Serializable, Appendable, CharSequence public final class StringBuffer extends Object implements Serializable, CharSequence 2.类概述: 一

String,StringBuffer与StringBuilder的区别,线程安全,非线程安全

String,StringBuffer与StringBuilder的区别?? 转载地址:http://blog.csdn.net/rmn190/article/details/1492013 另外:StringBuilder的实现与技巧 : http://lixianhuei.cnblogs.com/archive/2005/12/27/305708.html 对线程安全 ,非线程安全的讨论: 怎么理解Stringbuffer 是线程安全的 stringbuilder是线程不安全的? http:

java中String和StringBuffer以及StringBuilder的区别

我个人觉得理解String和StringBuffer以及StringBuilder的区别比较重要.在讨论他们的区别时,我们首先应该知道java中的String. 首先讨论String. 翻看String.java源码,会知道string的一个重要秘密: 在string中,其实内部是通过一个char数组来维护这个string的,并且还定义了一个记录该string在这个数组的起始位置的索引,以及定义了这个string的长度.  重点是他们都是final类型. private final char[]

Java中String,StringBuffer和StringBuilder的区别(转载)

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