【面试题】深复制与浅复制的区别

什么是浅复制和深复制?它们有什么区别? 浅复制是指创建一个新的对象,但新对象中的元素仍然引用原对象中的元素,而不是复制元素本身。换句话说,浅复制会复制对象本身,但不会复制对象内部包含的子对象(如果对象包含子对象的话)。因此,在浅复制过程中,如果原对象或复制对象的内部子对象发生变化,另一个对象也会受到影响。深复制是指创建一个新的对象,并复制地复制原对象中包含的所有对象,包括对象的子对象。那么,深复制不仅复制了对象本身,还复制了对象内部所有的子对象因此,深度复制创建了一个完全独立的副本,对原始对象和复制对象的互不影响。四、浅复制和深复制的实际应用。 阅读详情

目录

浅复制

深复制


浅复制

被复制对象的所有变量都含有与原来对象相同的值,而所有其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。

深复制

被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制的新对象,而不再是原有的那些被引用的对象。换言之,深复制把复制的对象所引用的对象都复制了一遍。

定义如下一个类:

class Test {
    public int i;
    public StringBuffer s;
}

如图所示,给出了对这个类的对象进行复制时,浅复制与深复制的区别。

Java基础面试题系列二 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java获取反射的三种方法通过new对象实现反射机制 2.通过路径实现反射机制 3.通过类名实现反射机制Class.forName(String className)、className.class、实例对象.getClass()。 阅读详情

相关推荐

将CityScapes数据集转换为COCO格式的实例分割数据集

##¥##2019年结束前最后两小时,写出本年度最后一篇博客,不是博主没地方去跨年,实在是Coding乐趣无穷ahhhh ##¥## COCO数据集是研究实例分割的通用数据集,但是针对道路环境的数据较少,对于自动驾驶和移动机器人的应用并不适配。而提供道路环境的实例分割数据的数据集目前有KITTI、CityScapes、Apllo等,CityScapes算是应用较广,数据质量较高的一个,所以,本篇...

陆羽飞的博客 9940

深复制与浅复制

浅拷贝:只创建一个新的指针,指向原指针指向的内存 深拷贝:创建一个新的指针,并开辟新的内存空间,内容拷贝自原指针指向的内存,并指向它 假设我们要对一个不可变的对象进行不可变copy(原来的对象不可变,新对象也不可变)。就没必要给新对象新建一块内存,反正大家都不可以对这个对象进行改变,那都使用一个就可以。所以iOS系统规定浅拷贝引用计数器加1就行。而需要给新对象开闭内存空间的,就是深拷贝。浅拷贝即指针拷贝,可以认为是给一只狗加了一条绳子;深拷贝不但拷贝了对象的指针,还在系统中在分配了一块内存用来存放拷贝对象的

weixin_61558111的博客 3623

别再傻傻分不清!直流有刷、无刷、步进电机,3分钟教你根据项目需求选对电机

本文深入解析直流有刷电机、无刷电机和步进电机的核心差异与应用场景,提供电机选型的黄金法则。通过性能参数对比、成本分析及典型应用案例,帮助工程师根据项目需求精准选择电机类型,避免常见选型误区。特别适合机器人、3D打印等领域的开发者参考。

weixin_29183637的博客 340

浅复制与深复制区别以及使用场景和案例

浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深复制(深克隆): 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象 所引用的对象都复制了一遍。 如何进行类复制? object类当中提供了浅复制的具体方法 注意事项 由doc我们可以得出以下几点主要事项

qq_42261668的博客 2023

SAC安装与相关库文件(.so)的安装

摘要 SAC: Seismic Analysis Code 是用于地震信号处理的一套软件。 本文将介绍SAC的安装,以及安装时遇到的一些问题。主要是一些动态库(lib**.so)找不到的问题。 本文的环境 64位的 Ubuntu 16.04 64位的系统是安装出现问题的主要原因 1. SAC获取与安装 SAC 的安装,只需要解压,然后修改环境变量即可!!!不需要任何编译!!! 1.1. SAC 获取与解压 SAC软件获取地址:http://ds.iris.edu/ds/nodes/dmc/forms/s.

WangCY的博客 4334

十二、基于FPGA实现slave SelectMAP配置逻辑

slave SelectMAP配置

weixin_41838250的博客 8753

c++中浅复制与深复制

在C++中经常会遇到有关类对象的浅复制与深复制的问题,也是容易出错的地方。 查找了相关资料,有关浅复制与深复制的定义为:对类进行复制的时候按位复制,即把一个对象各数据成员的值原样复制到目标对象中。当类中涉及到指针类型数据成员的时候,往往就会产生指针悬挂问题。 class A{ public: int* a; }; A a1; A b1=a1; b1=a1执行的是浅复...

weixin_34054931的博客 534

Python画常见分布的概率密度图

因为做概随大作业,了解了一些python画概率分布图的方法。

qq_44807946的博客 5204

浅复制和深复制有什么区别

浅复制:被复制对象的所有变量都含有原来对象的相同值,而所有对其他对象的引用仍然指向原来的对象。换句话说就是,浅复制至复制他所考虑的对象(也就是基本数据类型),不复制他所引用的对象(其他对象)。 深复制:被复制对象的所有变量都含有与原来对象相同的值,那些引用其他对象的变量指向复制的新对象,而不再是原有的那些被引用的对象,换而言之,深复制吧复制的对象所引用的对象都复制了一遍。 深复制和浅复制都是由c...

SoWhatWorld的博客 2810

华为OD技术面八股文_C++_02

汇总华为OD面试C++方面计数八股文真题,提供详细解答。

qq_45776114的博客 765

华为od 面试八股文_Python_02_含答案

华为od 面试八股文_Python_02_含答案

MISAYAONE的博客 4532

C#开发常见面试题三(浅复制和深复制的区别)

C#开发常见面试题三(浅复制和深复制的区别)

yannsann的博客 800

Matlab之App Designer 如何进行三维图形绘制教程

基于Matlab中的App Designer设计可视化界面并进行数据导入及3D绘图,可以直观的在可视化界面上展示分析结果,方便用户进行图形的操作。本文采用案例讲解的方式,详细介绍了如何采用Matlab App Designer建立数据3D绘图的GUI可视化界面的方法和详细的过程步骤,并介绍了导入数据进行计算时需要注意的相关事项,同时提供了详细的代码,以便读者进行学习和操作。

m0_59012156的博客 2066

Java面试题大揭秘:浅复制与深复制的区别,你造吗?

在Java编程中,我们经常会遇到“浅复制”和“深复制”这两个概念。那么,什么是浅复制呢?它又是如何工作的呢?今天,我们就来深入探讨一下这个问题。

LA1245780的博客 472

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ios面试题收集一(附基本答案)

此份面试题包含40个题目,是现在网上能搜索到的一个比较热的一份,但是答案并不是很详细和完整,基本答案来着cocoaChina,和一些自己的补充。 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有个A对象,复制一

killnono 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【iOS知识学习】_iOS面试题汇总(一)

网上的面试题参差不齐,本人从网上总结了很多的面试题,供大家学习,文档免费下载:http://download.youkuaiyun.com/detail/weasleyqi/4733438,第二篇地址:http://blog.youkuaiyun.com/weasleyqi/article/details/8148234本人知识浅薄,有些问题暂时还未得到解决,高手看到请留下您宝贵的答案⋯⋯由于内容较多,所以分两篇来发表,

weasleyqi的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

浅复制与深复制-集合储存的引用

发现问题 今天看一个面试题的时候发现了浅复制与深复制的这个问题,题是这样的: 首先定义一个自定义类型,其中该类型的一个字段为id,然后为该字段赋值id=1。 接着定义两个ArrayList,把该类分别放入这两个list中。 修改其中的list的一个id=2,那么另外一个list的id会变么? 分析问题 按照正常的思维肯定是不会变的呀,因为修改的是其中一个ArrayList中对象的值,为什么另...

java140142的博客 197

iOS面试题

整理的iOS技术面试题 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,

jeikerxiao 792

iOS 面试题(二)

此份面试题包含40个题目,是现在网上能搜索到的一个比较热的一份,但是答案并不是很详细和完整,基本答案来着cocoaChina,和一些自己的补充。 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有

天微微亮 590

iOS面试题集锦(1~10)

iOS面试题集锦(1~10)   1. Objective-C的内存管理? 答: 1)当你使用new,alloc和copy方法创建一个对象时,该对象的保留计数器值为1.当你不再使用该对象时,你要负责向该对象发送一条release或autorelease消息.这样,该对象将在使用寿命结束时被销毁. 2)每retain一次会使引用系数就加1,相应地要在适当位置release   2 浅谈

小树学信奥 1万+

IOS面试题汇总(中英文)

网上的面试题参差不齐,本人从网上总结了很多的面试题,供大家学习, 文档下载:   本人知识浅薄,有些问题暂时还未得到解决,高手看到请留下您宝贵的答案⋯⋯   1.Difference between shallow copy and deep copy?
浅复制和深复制的区别?
 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。
深层复制:复制引用对象本

zryzry2008的博客 315

IOS面试题

此份面试题包含40个题目,是现在网上能搜索到的一个比较热的一份,但是答案并不是很详细和完整,基本答案来着cocoaChina,和一些自己的补充。 1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有

海阔凭鱼跃,天高任鸟飞 673

【iOS学习笔记】面试题归总

iOS如何面试 iOS面试题(一) iOS基础面试题(二) iOS基础面试题(三) iOS基础面试题(四) iOS进阶面试题----Block部分 iOS进阶面试题----多线程部分 iOS进阶面试题----经典10道 iOS面试悲剧的应对方法 http://www.cocoachina.com/ios/20150825/13195.html http://www.co...

weixin_30685029的博客 583

iOS面试题汇总(一)

网上的面试题参差不齐,本人从网上总结了很多的面试题,供大家学习,文档免费下载:http://download.youkuaiyun.com/detail/weasleyqi/4733438,第二篇地址:http://blog.youkuaiyun.com/weasleyqi/article/details/8148234本人知识浅薄,有些问题暂时还未得到解决,高手看到请留下您宝贵的答案⋯⋯由于内容较多,所以分两篇来发表,

hqyhqyhq的专栏 936
上一篇: 工厂模式(Factory Pattern)
下一篇: 【面试题】Object有哪些基本的方法
红枫忆梦
博客等级 码龄8年 117粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值