美文网首页
Java中String,StringBuffer和StringB

Java中String,StringBuffer和StringB

作者: 年迈的代码机器 | 来源:发表于2020-04-01 14:13 被阅读0次

    String 和StringBuffer的区别 我所知道的更多的展现在字符串拼接方面,如下例子
    如果数据数量足够大,他们的区别是非常明显的。

    下面是String字符串变量

    String a=“pine”;           //定义了a变量
    String b=“apple”;        // 定义了b变量
    String c=“pine”+“apple”;   // 一种将 a和b拼接的方法
    String d=a+b;               //  第二种拼接方法
    

    下面是StringBuffer字符串变量

    StringBuffer sb= new StringBuilder(“pine”).append(“ apple”); 
    //这是一个拼接语句,在pine后拼接apple 而insert(位置,内容)方法可以指定拼接的位置
    

    下面就上述例子来说一说String 和StringBuffer的区别

    首先

    String是不可变的对象,每次使用时都会new一个新的String对象。
    而StringBuffer是一个可变的安全的字符序列,他有一个缓冲区,可以通过调用方法来修改该缓冲区的内容和长度。

    在速度方面

    变量c 也就是例子的第一种拼接方法 在JVM机制中就相当于没有拼接,即

    String c= “pine apple”
    

    而变量d也就是第二种拼接方法则是String的一种拼接方法。

    String d=a+b;               //  第二种拼接方法
    

    此时的d就是"pine apple",此时的数据量很大的话,速度上会比StringBuffer的拼接慢上很多了。

    关于StringBuilder

    此类提供一个与 StringBuffer 兼容的 API,该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

    相关文章

      网友评论

          本文标题:Java中String,StringBuffer和StringB

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