String和StringBuffer的replace问题

来源:互联网 发布:game ec 源码 编辑:程序博客网 时间:2024/06/04 00:55

public class TestReplace {    public static void main(String[] args) {        String textString = new String ("java");        StringBuffer texeBuffer = new StringBuffer("java");        bufferReplace(texeBuffer);        stringReplace(textString);        System.out.println(textString + texeBuffer);        texeBuffer.append("C");        texeBuffer = new StringBuffer("hello");        texeBuffer.append("world");        System.out.println(texeBuffer + "   55555555555555");        String cc = textString.replace('j','i');        System.out.println("pppppppppppp   "+cc);    }    public static void stringReplace(String text) {        text = text.replace('j','i');        System.out.println("ccccccc  "+text);    }    public static void bufferReplace (StringBuffer text) {        text.append("C");        text = new StringBuffer("hello");        text.append("world");        System.out.println(text+"   99999999999999");    }}



这个例子很典型

 StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
 text就指到你new的对象

在方法里面没有把这个对象关联到最开始的对象

实际还是两个对象之间的操作
刚开始的Stringbuffer还是原来所指的对象  多了个C

而又多出了个方法里的对象,这是个无用对象被gc回收
对象里的对象就是hello world
方法里的对象


后续了解的更多的话,再来补充




原创粉丝点击