`
langlanglanglang
  • 浏览: 31830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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";
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics