Java中String、StringBuilder和StringBuffer的区别

---恢复内容开始---

  • String字符串常量
  • StringBuffer字符串变量(线程安全)
  • StringBuilder字符串变量(非线程安全)

  String是常量,该对象的值已经被赋予了,不能再更改。若非要更改,则只能再重新创建另一个对象,在这个新创建的对象上再进行赋值。

  StringBuffer是变量,是可以随时变化的量。如果对StringBuffer对象进行改变,每次结果都会对StringBuffer对象进行操作,而不是生成新的对象。所以一般字符串要经常变化的话推荐使用StringBuffer。

  StringBuilder和StringBuffer类功能基本相似,方法也差不多,主要区别在于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安全的,相比而言StringBuilder类会略微快一点。

---恢复内容结束---

时间: 2024-08-05 21:18:02

Java中String、StringBuilder和StringBuffer的区别的相关文章

String, StringBuilder 与StringBuffer的区别与联系

1.区别 (1)String构建的对象不能改变,每次对String进行操作时,如两个String相加,需要新建一个String对象,然后容纳最终的结果. 而StringBuilder与StringBuffer构建的对象可以随时在修改其内容,而无需生成新的对象.一般新建一个对象是会生成16个字节的空间,之后根据需要再增加空间. 由于一般新构建一个对象涉及分配内存空间分配.无引用对象过多时的垃圾回收等,因此,对于操作频繁的字符串需使用StringBuilder或StringBuffer. (2)St

String, StringBuilder及StringBuffer的区别

在java中,String, StringBuilder及StringBuffer经常被用来处理字符串操作. 下表列出它们的异同点: String StringBuffer StringBuilder 是否可继承 否(final) 否(final) 否(final) 是否长度可变 否 是 是 是否线程安全 ---------- 是 否 拼接效率 低 中 高 一般情况下,使用String,StringBuilder比较多.因为字符串的拼接很少会涉及到多线程,所以StringBuffer用的较少.先

Java学习资料-StringBuilder与StringBuffer的区别

相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类.String类是不可变类,任何对String的改变都会引发新的String对象的生成:而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全了,那么为什么还要引入新的StringBuilder类干吗?相信大家都有此疑问,我也如此.下面,我们

Java 中String和new 创建对象的区别

我个人的理解String x="bv";这个是在栈中创建的,栈中的数据具有不可更改性,就是说你再创建一个String y="bv";它会先在栈中寻找字面值为bv的地址,如果存在这样的地址就指向它(否则就在栈中新开辟一个字面值为bv的内存地址) 因此这儿x==y 因为他们指向同一块内存地址 无论== equals结果都是true String v=new String("bv"); 通过new的方式在堆创建一个对象,new是在堆中开辟一个新的处女地

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

java中String、StringBuffer、StringBuilder的区别

java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的. private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在Abstra

Java基础——java中String、StringBuffer、StringBuilder的区别

(转自:http://www.cnblogs.com/xudong-bupt/p/3961159.html) java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的. private final char value[]; Strin

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

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

Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的. private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在Abstra

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和