荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Begin (迷茫), 信区: Java
标  题: Re: java手记(1)--java的赋值
发信站: 荔园晨风BBS站 (Wed Nov  7 13:41:07 2001), 站内信件

clone()
不用第三个变量,是通过二进制流复制,内存的复制。
【 在 georgehill (毕业生【一个人的精彩】) 的大作中提到: 】
:      那如果要完全拷贝一个对象呢?是不是要自己在类里定义一个方法?
: 【 在 heiheihei (瓦尔特) 的大作中提到: 】
: : java手记(1)--赋值语句
: :                                         瓦尔特
: : 一般来说,在进行变量的赋值时,仅仅表示“值的传递”,也就是说,
: : 如果对变量A,B进行赋值运算A=B的话,仅仅将A的值修改为B的值。如果
: : 接下来再进行B=2的运算,并不会影响A的值。
: : 但进行对象的赋值时,表示的是句柄的赋值。也就是说对象C=D,其结果
: : 是C和D指向同一个对象。这样造成的结果就与前边不同了。
: : 例子程序:
: : class Number{
: : int i;
: : }
: : public class Assignment
: : {
: :     public static void main(String args[])
: :     {
: :         Number n1=new Number();
: :         Number n2=new Number();
: :         n1.i=10;
: :         n2.i=999;
: :         System.out.println("1: n1.i: "+n1.i+",n2.i: "+n2.i);
: :         n1=n2;
: :         System.out.println("1: n1.i: "+n1.i+",n2.i: "+n2.i);
: :         n1.i=200;
: :         System.out.println("1: n1.i: "+n1.i+",n2.i: "+n2.i);
: :     }
: : }
: : 运行结果:
: : C:\myjava>java Assignment
: : 1: n1.i: 10,n2.i: 999
: : 1: n1.i: 999,n2.i: 999
: : 1: n1.i: 200,n2.i: 200
: : 进行n1=n2的赋值后,再修改n1,n2也发生了改变。说明n1和n2指向同一
: : 对象。
: : 这时,有一个句柄被丢失掉了。(被内存垃圾处理器回收)
: : 这种现象叫“别名”,是java语言操作对象的一种方式。
: :                             瓦尔特学自thinking in java


--
Good programming is %99 sweat and %1 coffee.

※ 修改:·Begin 於 Nov  7 14:16:37 修改本文·[FROM: 203.93.19.1]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 203.93.19.1]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店