日期:2014-05-20  浏览次数:20683 次

浅克隆和深克隆的区别!
浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 
深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。 
这两句话是什么意思?
  所考虑的对象是指引用,所引用的对象是指实例对象。下一个意思是将对象复制一份,然后将新复制的对象引用赋值给新的对象引用。 浅克隆和深克隆的区别是理解到了,但是两者在实现上好像挺麻烦的,实现上的差异如何理解!
  Object的clone方法是浅克隆,如果要重写clone方法让其深克隆,如何重写才能实现?
  我们使用=符号就能实现浅克隆,为什么不将clone方法直接写成深克隆,而让继承的子类来实现!?
  还有书上有句话说,直接赋值语句除了字符串都是浅克隆,但是如:String s1="abc";String s2=s1;但是s1==s2明明是true,为什么还说字符串赋值是深克隆,如果是深克隆的话,不是应该有不同的存储空间吗?

------解决方案--------------------
http://blog.csdn.net/mengxiangyue/article/details/6818611
楼主看看这篇文章 还有上一篇Java堆与栈 会了解的更透彻的
------解决方案--------------------
http://blog.csdn.net/mengxiangyue/article/details/6818611
楼主看看这篇文章 还有上一篇Java堆与栈 会了解的更透彻的