您的位置:首页 > 产品设计 > UI/UE

String、StringBuffer、StringBuilder区别

2017-02-16 21:47 393 查看

简介:

    最近在定义数据库语句时用到了String、StringBuffer和StringBuilder,那么它们之前有什么区别那,现在总结一下。

区别:

 1、是否可变

    String类使用final修饰的,所以是不可变的,用String定义字符串的时候,如果字符串的值改变,就会在内存创建一个新的空间来保存字符串。

    StringBuffer和StringBuilder是可变对象,对其进行修改不会像String那样重新建立对象。

 2、多线程是否安全

    String中的对象是不可变的,也可以理解为常量,因此线程安全。

    StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,因此是线程安全的

    StringBuilder并没有加同步锁,所以是非线程安全的。

 3、运行速度和效率

      StringBuilder > StringBuffer > String 

 

 4、使用情况总结

     如果操作少量的数据用String

     如果是单线程操作大量数据用StringBuilder

     如果是多线程操作大量数据用StringBuffer

  StringBuffer和StringBuilder的用法一致,详见博客:StringBuffer用法

总结:

        实践中多多体会!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: