首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

String、StringBuffer、StringBuilder差异

2012-10-09 
String、StringBuffer、StringBuilder区别速度和效率:StringStringBuilderStringBufferString是不可变(im

String、StringBuffer、StringBuilder区别
速度和效率:String>StringBuilder>StringBuffer;
    String是不可变(immutable)对象,不可改变其内容,每次改变时都是创建一个新的Stringbuilder对象,在Stringbuilder上对旧String进行改变后,利用toString()方法转化为String,然后返回这个新对象引用,原来的对象没有任何改变,等于是新创建了个String对象。
     StringBuilder和StringBuffer是可变对象。StringBuffer是线程安全的,所以效率要低些。
    在三者的选择上,如果要频繁更改String内容,如果只是简单的拼接之类的,可以信赖编译器,直接试用String,但是在复杂的比如循环结构下改变String内容,建议试用StringBuffer和StringBuilder。它们二者的区别主要是线程安全。如果是单线程使用StringBuilder会获得更高的效率,如果是多线程,选择线程安全的StringBuffer。
    特别应该指出的是。String s = "a"+"b"+"c";jvm会认为String s = "abc";

热点排行