firtre

小蚂蚁,定语没想好。 精灵古怪,不是我。

String、StringBulider和StringBuffer

1 String 是不可变的(String对象具有只读特性)
        String对象实际上是不可变的。String类中每一个对String的操作其实都是新生成一个String对象。原来的String对象是没有改变而且存在在物理内存上的。
        特点:在传递参数的时候,参数是为方法提供信息而不希望本身被修改的。
2 StringBuilder 对象是可变的
        在通过追加、移除、替换或插入字符而创建它后可以对它的对象本身进行修改。
        特点:可以避免频烦地修改String而导致需要耗费大量内存存储String对象(中间过程的String往往是无用的);但是在多线程的时候使用StringBuilder则是不安全的。建议使用StringBuffer 。
3 StringBuffer 线程安全的可变字符序列
        它是一个类似于 String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

总结:
        String :对象不可变。
        StringBuilder:对象可变,速度快,但多线程不安全。
        StringBuffer :对象可变,速度较StringBuilder慢,但多线程安全。

posted on 2008-01-16 11:52 笨蛋 阅读(341) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: