社区
C#
帖子详情
请教浅复制与深度复制的一个问题
智商无下限
2010-02-23 09:06:17
是不是浅复制所占的内存空间比深度复制少?
比如
object a ; object b;
假设 a的大小为 100M
如果 b=a;这样赋值的话,虽然也创建了b,但两个实例实质只占用了a的空间。 记 a,b的空间总和为 100M。
如果是
b = a.Clone();
则会占用 100M+100M的空间。
请问各位高手事实上是这样的吗?
...全文
147
7
打赏
收藏
请教浅复制与深度复制的一个问题
是不是浅复制所占的内存空间比深度复制少? 比如 object a ; object b; 假设 a的大小为 100M 如果 b=a;这样赋值的话,虽然也创建了b,但两个实例实质只占用了a的空间。 记 a,b的空间总和为 100M。 如果是 b = a.Clone(); 则会占用 100M+100M的空间。 请问各位高手事实上是这样的吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-汪帆-
2010-02-24
打赏
举报
回复
楼主的理解是正确的,不过忽略了一点:a,b,c...引用(变量)本身也是占内存的,它们的内存空间在栈里面。
智商无下限
2010-02-24
打赏
举报
回复
兔子-顾问
2010-02-24
打赏
举报
回复
浅表复制,是复制引用。深度复制是复制值。是的,你理解的对的。
bmwsl
2010-02-24
打赏
举报
回复
智商无下限智商无下限智商无下限智商无下限
智商无下限
2010-02-23
打赏
举报
回复
楼上两位的意思是
如果是 b=a 的这种赋值方式是不会增加内存开销的是吗?
如果 我同时又 c=a ,d=a.... 实际上也是相当于只占用了a本身数据的内存空间大小。
孤剑
2010-02-23
打赏
举报
回复
b = a.Clone();
这个不一定是 100 + 100M 简单,要看 clone 的具体实现,可以实现为深拷贝也可以是浅拷贝。
不过对于深浅拷贝的理解,差不多,浅拷贝就是无论多少对象都指向同一个内存地址,而深拷贝就是将原有对象进行复制,生成新的对象。
wuyq11
2010-02-23
打赏
举报
回复
浅拷贝是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象中引用型字段的值他将反映在原是对象中,也就是说原始对象中对应的字段也会发生变化。
降重-已改.zip
降重-已改.zip
游戏测试 软件测试 面试题
归纳总结了一些游戏测试的面试题,有入职面试的童鞋可以参考
学位论文撰写及排版格式手册(插图版).pdf
西电学位论文撰写及格式排版手册(插图版).pdf
教师信息技术应用能力提升工程个人研修计划.docx
教师信息技术应用能力提升工程个人研修计划.docx
【洛谷 P1122】最大子树和 题解(
深度
优先搜索+树形DP)
最大子树和题目描述小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师
请教
一些
问题
。一天他早晨骑车去上课,路上见到
一个
老伯正在修剪花花草草,顿时想到了
一个
有关修剪花卉的
问题
。于是当日课后,小明就向老师提出了这个
问题
:一株奇怪的花卉,上面共连有 朵花,共有 条枝干将花儿连在一起,并且未修剪时每朵花都不是孤...
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章