String、StringBuilder 与 StringBuffer

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

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

String、StringBuilder 与 StringBuffer的相关文章

String, StringBuilder及StringBuffer的区别

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

String, StringBuilder 与StringBuffer的区别与联系

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

CharSequence,String ,Stringbuilder和StringBuffer源码分析

1.从类的定义看CharSequence.StringBuffer.StringBuilder.String的关系 下面先贴上这四者的定义(来自JDK1.6) CharSequence是一个定义字符串操作的接口,StringBuffer.StringBuilder.String中都实现了这个接口. //CharSequence定义 public interface CharSequence //StringBuffer定义 public final class StringBuffer exte

String,StringBuilder 和StringBuffer区别

1. String 和字符串缓冲区的区别是: String 是一个不可变的字符序列 , 而字符串缓冲区是可变的 2. StringBuffer 是一个线程安全的可变字符序列 ; 线程安全对应的效率低 ; 3. StringBuilder 线程不安全的可变字符序列 ; 线程不安全对应的效率高 ;

java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)

一.String 1.String:字符串常量,字符串长度不可变.Java中String是immutable(不可变)的.String类是被final修饰 2.String str="hello world"和String str=new String("hello world")的区别 public class Main {              public static void main(String[] args) {         String s

String、StringBuilder、StringBuffer 和CharSequence的区别

String简介: String 是java中的字符串,它继承于CharSequence. CharSequence简介: CharSequence是一个接口,它只包括length(),charAt(int index), subSequence(int start, int end)这几个API接口 String.StringBuffer.StringBuilder和CharSequence 关系String 继承于CharSequence,也就是说String也是CharSequence类型

Java中的String,StringBuilder,StringBuffer三者的区别

最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正. 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面. 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String

JDK 1.8 源码解析 String、StringBuilder和StringBuffer的异同

JDK提供了String.StringBuilder和StringBuffer这三个类来处理字符串,其中StringBuilder类是在JDK 1.5中新增的. 不同点如下: 1 是否有父类 String没有父类. // String类不能被继承 // 实现了Serializable.Comparable和CharSequence(字符序列)接口 public final class String implements java.io.Serializable, Comparable<Strin

[转载]Java中的String,StringBuilder,StringBuffer三者的区别

最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正. 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面. 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String

(转)String,StringBuilder,StringBuffer区别

Java中的String,StringBuilder,StringBuffer三者的区别 注:转自-博客园-酥风 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正. 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面. 首先说运行速度,或者说是执行速度,