1.定义:

String:String 类代表字符串。

Java 程序中的全部字符串字面值(如"abc" )都作为此类的实例实现。

字符串是常量;它们的值在创建之后不能更改。

字符串缓冲区支持可变的字               符串。

由于 String 对象是不可变的。所以能够共享。比如:

String str = "abc";等效于char data[] = {'a', 'b', 'c'}; String str = new String(data);

StringBuffer:线程安全的可变字符序列。一个类似于 String 的字符串缓冲区。但不能改动。尽管在随意时间点上它都包括某种特定的字符序列,但通过某些方法调用能够改变该序列的长度和内容。
    主要操作是 appendinsert 方法。可重载这些方法,以接受随意类型的数据。每一个方法都能有效地将给定的数据转换成字符串。然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符加入到缓冲区的末端;而 insert 方法则在指定的点加入字符。
    可将字符串缓冲区安全地用于多个线程。能够在必要时对这些方法进行同步。因此随意特定实例上的全部操作就好像是以串行顺序发生的,该顺序与所涉及的每一个线程进行的方法调用顺序一致。

StringBuilder:一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这样的情况非常普遍)。 假设可能,建议优先採用该类,由于在大多数实现中,它比 StringBuffer 要快。

主要操作是 appendinsert 方法。可重载这些方法,以接受随意类型的数据。每一个方法都能有效地将给定的数据转换成字符串。然后将该字符串的字符追加或插入到字符串生成器中。append 方法始终将这些字符加入到生成器的末端;而 insert 方法则在指定的点加入字符。

2.差别:
在运行速度方面的比較:StringBuilder >  StringBuffer 。
假设要操作少量的数据用 = String
单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

String,StringBuffer以及StringBuilder的差别的更多相关文章

  1. String,StringBuffer与StringBuilder的差别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能 ...

  2. Java中String,StringBuffer与StringBuilder的差别

    String 字符串常量: StringBuffer 字符串变量〈缓冲区〉(线程安全): StringBuilder 字符串变量〈缓冲区〉(非线程安全): 简要的说, String 类型和 Strin ...

  3. String、StringBuffer和StringBuilder的差别

    String.StringBuffer和StringBuilder的差别 1.String类是不可变类,即一旦一个String对象被创建后.包括这个对象中的字符序列是不可改变的 2.在字符串拼接的过程 ...

  4. String,StringBuffer和StringBuilder源码解析[基于JDK6]

    最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下 ...

  5. String,StringBuffer和StringBuilder的异同

                                                                    String,StringBuffer和StringBuilder的异同 ...

  6. String,StringBuffer与StringBuilder

    1. String,StringBuffer与StringBuilder的区别 String:存储在常量池中:是不可变的字符序列,任何对String值的改变都会引发新的String对象的生成,因此执行 ...

  7. Java String, StringBuffer和StringBuilder实例

    1- 分层继承2- 可变和不可变的概念3- String3.1- 字符串是一个非常特殊的类3.2- String 字面值 vs. String对象3.3- String的方法3.3.1- length ...

  8. String, StringBuffer and StringBuilder

    一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...

  9. String,StringBuffer和StringBuilder

    String,StringBuffer和StringBuilder分别应该在什么情况下使用? String 是Java的字符串类,其实质上也是用Char类型存储的,但是除了hash属性,其他的属性都声 ...

  10. 深刻理解Java中的String、StringBuffer和StringBuilder的差别

    声明:本博客为原创博客,未经同意.不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(链接为http://blog.csdn.net/bettarwang/article/detai ...

随机推荐

  1. Q10Ⅱ 双核 - 产品中心 - 海美迪

    海美迪Q系列视频文明书 Q10Ⅱ 双核 - 产品中心 - 海美迪

  2. 在Qt中使用ActiveX控件

    Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QA ...

  3. qt button以及label实现不规则图形(五种方法:使用QSS,设置Mask图片,自己画)

    1.方法1:准备一张边界是透明的不规则图形 QPushButton * pbtn = new QPushButton;    pbtn->setStyleSheet("QPushBut ...

  4. Android菜鸟的成长笔记(7)——什么是Activity

    原文:[置顶] Android菜鸟的成长笔记(7)——什么是Activity 前面我们做了一个小例子,在分析代码的时候我们提到了Activity,那么什么是Activity呢? Activity是An ...

  5. 6.0RMB MP3所看到的……

    产品篇:          偶然看到这个商品信息,作为电子开发人员,首先想到的便是采用了哪家芯片方案,怎么做到这么低的价格!     于是立刻买了一台回来,拆机如下:          成本BOM: ...

  6. javascripte (三) 改变html图像

    <script> function changeImage(){ element=document.getElementById("myimage") if (elem ...

  7. [C#基础] 数据类型

    预定义类型 C#提供了16种预定义类型,其中包括13种简单类型和3种非简单类型. 预定义的简单类型包括以下3种: 11种数值类型 不同长度有符号和无符号的整数类型(8种) 浮点数类型float和dou ...

  8. Delphi引用C对象文件

    C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C ...

  9. Win8下在Vmware11中安装使用苹果系统OS X 10.10

    原文:Win8下在Vmware11中安装使用苹果系统OS X 10.10   近来因为需要做 iOS 的项目,所以需要多花一些时间看看敲敲代码.因为自己手头上并没有 Mac(过年为了闲的时候能玩玩游戏 ...

  10. 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法

    解压tar.gz文件报错gzip: stdin: not in gzip format解决方法 在解压tar.gz文件的时候报错 1 2 3 4 5 [Sun@localhost Downloads] ...