美文网首页
String拼接、StringBuffer、StringBuil

String拼接、StringBuffer、StringBuil

作者: AlanGuo | 来源:发表于2016-11-16 14:05 被阅读0次

    String 字符串常量
    StringBuffer 字符串变量(线程安全)
    StringBuilder 字符串变量(非线程安全)

    String:是不可改变的量,也就是创建后就不能在修改了。看上去改变实际上是创建了新的字符串。

    StringBuffer:是一个可变字符串序列,它与String一样,在内存中保存的都是一个有序的字符串序列(char类型的数组),不同点是StringBuffer对象的值都是可变的。

    StringBuilder:与StringBuffer类基本相同,都是可变字符换字符串序列,不同点是StringBuffer是线程安全的,StringBuilder是线程不安全的。

    因此,在性能方面,由于String类的操作是产生新的String对象,而StringBuilder和StringBuffer只是一个字符数组的扩容而已,所以String类的操作要远慢于StringBuffer和StringBuilder。又因为 StringBuffer 要考虑同步而 StringBuilder 没有,所以 StringBuffer 要比 StringBuilder 慢。

    所以:
    速度(耗时 短→长):StringBuilder → StringBuffer → String

    摘自http://www.jb51.net/article/84531.htm
    在大部分情况下 StringBuilder > StringBuffer
    java.lang.StringBuilder一个可变的字符序列是JAVA 5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步,所以使用场景是单线程。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的使用方法基本相同。

    相关文章

      网友评论

          本文标题:String拼接、StringBuffer、StringBuil

          本文链接:https://www.haomeiwen.com/subject/pplrpttx.html