谁能详细说一下java语言中的副本是什么意思,与引用有什么关系?
原数据改变,那么他的副本会改变吗?
副本改变了,原数据会改变 吗?不太理解,哪位能帮详细解答一下?

解决方案 »

  1.   

    对呀,你说的是克隆呢?还是
    A a = new A();A a1 = a;然后a与a1呢?
      

  2.   

    副本就是复制玩的新玩意。A a = new A();A a1 = a;然后a与a1呢?——这个可不是副本。英文应该是COPY,翻译过来就是这个样子了。副本与原数据是不相关的,不会相互影响的。不过一般方法传递时候,只有基本数据类型和String才会传递副本,其他的类型是按引用的传递的。static void add(String str){
    str += "A";
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
    String str = "abc";
            System.out.println(str);
            add(str);
            System.out.println(str);
    }
    打印出来是
    abc 
    abc