如约而至的string、stringbuffer和stringbuilder知识相关

2018-12-02 21:59:26  卢浮宫  版权声明:本文为站长原创文章,转载请写明出处


一、前言

    查阅资料做一下记录,资料多来源于数据和网络。


二、谁是最快的

    三者在执行速度方面的排名为 : stringbuilder 》 stringbuffer 》 string 。 忧伤了,都没用过stringbuilder...


三、具体区别

    string:是字符常量,也就是不可更改的,当你做赋值或 + 以及 += 操作的时候编译器其实已经重新开辟了一个新的对象用于储存了。

           也就是说已经指向了其他地方。

    stringbuffer 和 stringbuild:是字符串变量,当你做赋值 + 以及 += 操作的时候是在原有的基础上进行的,指向的也是原来的地址。


四、谁是线程安全的

    关于string 、stringbuffer 以及stringbuilder的线程安全问题

        string 是线程安全的,其中一个原因就是他的不可变。
        stringbuffer 也是线程安全的,而stringbuilder则是飞线程安全的。

        相关文档请参考 : https://www.cnblogs.com/xingzc/p/6277581.html  (声明:这里引用下他人文章)


五、综上考虑

    如果只是操作少量的数据,可以是使用 string
    单线程操作大量数据时,使用stringbuilder
    多线程操作大量数据的时候使用stringbuffer


六、后记

    当字符创操作被多个线程使用的时候,虽然说stringbuilder的速度比stringbuffer快,

    但是JVM并不能保证数据的安全性,而stringbuffer则可以确保其安全性。




更多精彩请关注guangmuhua.com


最新评论: