java读书笔记:练习对象引用传递

来源:互联网 发布:淘宝图 编辑:程序博客网 时间:2024/06/18 16:57

java对象引用传递实践,理解对象传递和值传递

package cn.com.github;class NewObject {    public StringBuffer newString() {        StringBuffer buffer = new StringBuffer();        buffer = PassValue.passvalue();        return buffer;    }}class NotNewObject {    public StringBuffer newString() {        StringBuffer buffer = null;        //buffer 指向passvalue 中的buffer对象        buffer = PassValue.passvalue();        //不要上一句,直接写        //buffer.append("hello world");        //eclipse会报警告,因为这是一个引用传递 ,eclipse并没有为buffer开辟内存,也就是说没有对象。        return buffer;    }}class PassValue {    public static StringBuffer passvalue() {        StringBuffer buffer = new StringBuffer();        //buffer 指向passvalue 中的buffer对象        //new StringBuffer()成为垃圾收集器回收的对象        buffer.append("hello world");        return buffer;    }}class QuoteObject{    public StringBuffer newString() {        StringBuffer buffer = null;        //buffer 指向passvalue 中的buffer对象        buffer = PassValue.passvalue();        StringBuffer buffer2 = null;        //buffer2 指向passvalue 中的buffer对象,复制了一份引用        buffer2 = buffer;        buffer2.append("hi,guys");        return buffer2;    }}public class NewOrNotObject {    public static void main(String[] args) {        NewObject newObject = new NewObject();        System.out.println(newObject.newString());        //hello world        NotNewObject notNewObject = new NotNewObject();        System.out.println(notNewObject.newString());        //hello world        QuoteObject object = new QuoteObject();        System.out.println(object.newString());        //hello worldhi guys        //结论:buffer起一个引用传递的作用    }}
  • 参考: 浅谈java对象引用和对象赋值
0 0