码迷,mamicode.com
首页 > 编程语言 > 详细

Java 浅拷贝 深拷贝

时间:2019-03-09 14:22:42      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:需要   内存   nbsp   重写   object   空间   调用   深拷贝   对象   

  1. 两者区别主要在于引用数据类型的属性,对于基本数据类型采用的是值传递,所以两者一样;
  2. 对于浅拷贝,引用数据类型只会进行引用传递,即复制一份引用值(内存地址)给新对象,一个对象的变化会影响到另一个的引用属性对象,两者同时变化,如:数组,对象等;
  3. 对于深拷贝,会给引用数据类型开辟新的内存空间,并且是逐级复制开辟父级的内存空间,以及父级的父级等等,直到该属性对象可达的所有对象;

 

  浅拷贝的实现方式:

  1. 构造方法传值;
  2. 重写clone()方法,方法体中调用super.clone()即可采用Object中的原clone方法;

 

  深拷贝的实现方式:

  1. 重写clone()方法,不同的是需要对每个对象进行深层复制,并开辟内存空间;

 

  

Java 浅拷贝 深拷贝

标签:需要   内存   nbsp   重写   object   空间   调用   深拷贝   对象   

原文地址:https://www.cnblogs.com/bearhoney/p/10500556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!