Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 1169|回复: 5
打印 上一主题 下一主题

这两个什么区别??

[复制链接]

6

主题

0

好友

77

积分

中级会员

Rank: 2Rank: 2

跳转到指定楼层
1#
发表于 2009-8-5 08:24 PM |只看该作者 |倒序浏览
java 里面的Shallow Copy 和 Deep Copy有什么区别?
又怎样用???




收藏收藏0

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

2#
发表于 2009-8-5 09:13 PM |只看该作者
原帖由 soonlvu 于 2009-8-5 08:24 PM 发表
java 里面的Shallow Copy 和 Deep Copy有什么区别?
又怎样用???


Shallow 和 Deep 不只是有 Java 上才有, 最簡單的說明就是 Shallow 複製的對象只有物件結構, 而 Deep 就包括結構中的屬性和對象等其他物件
例子去搜索應該會有很多


回复

使用道具 举报

6

主题

0

好友

77

积分

中级会员

Rank: 2Rank: 2

3#
发表于 2009-8-8 12:40 PM |只看该作者
原帖由 Super-Tomato 于 2009-8-5 09:13 PM 发表


Shallow 和 Deep 不只是有 Java 上才有, 最簡單的說明就是 Shallow 複製的對象只有物件結構, 而 Deep 就包括結構中的屬性和對象等其他物件
例子去搜索應該會有很多


哪一种会比较好用????em0010


回复

使用道具 举报

31

主题

0

好友

1228

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

4#
发表于 2009-8-8 02:26 PM |只看该作者
看是什么用途, 没有说好用不好用的.

通常你 copy 一个 array 之类的 data structure,

  1. Array a;
  2. Array b;
  3. b = a;
复制代码


by default 是 shallow copy 罢了, 就是说其实 compiler/interpreter 只是把 b 的 address 改成指去 a 那边.
如果过后你在 array b 里面改东西的话, 也会影响到 array a.

Deep copy 的话是里面每一个 element 都 copy 出来,

  1. Array a = {......}
  2. Array b;

  3. for (i = 1...n)
  4. { b[i] = a[i]; }
复制代码


两个 array 是不同的个体, 只不过里面的 element 一模一样.
在 b 里面改的东西不会影响到 a.


回复

使用道具 举报

6

主题

0

好友

77

积分

中级会员

Rank: 2Rank: 2

5#
发表于 2009-8-11 01:41 AM |只看该作者
原帖由 ~Zero 于 2009-8-8 02:26 PM 发表
看是什么用途, 没有说好用不好用的.

通常你 copy 一个 array 之类的 data structure,

Array a;
Array b;
b = a;

by default 是 shallow copy 罢了, 就是说其实 compiler/interpreter 只是把 b 的 ad ...


deep copy 还是不懂咯

是不是如果
Array a ={'a','b','c'};
Array b={};

for(i=0....n)
{b=a;}

b里面就会变成a的东西了。。。

怎么不讲b里面的东西改了a不会影响?
为什么不会影响???


回复

使用道具 举报

13

主题

0

好友

6850

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

6#
发表于 2009-8-11 07:37 PM |只看该作者
http://en.wikipedia.org/wiki/Object_copy
图文解释,蛮清楚的。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-25 10:36 PM , Processed in 0.089622 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部