◎筱米加步枪◎.Blog

Happy coding

Java克隆技术

筱米加步枪 posted @ 2010年8月17日 00:30 in [ JavaSE ] with tags java 克隆 , 2156 阅读

前些天,根据需要,加入了克隆技术,学习了下,总结如下:

Java的对象都是引用,当将一个对象赋值给另外一个对象的时候,也就是说指针(当然,java没有指针的概念)同指向同一块内存地址,这个时如果对一个对象进行修改,也必然会修改另外一个对象的值,这明显不是我们想要的,解决这个问题,可以引入克隆技术,我们可以克隆一个对象出来,使得对克隆出来的对象修改不会改变原始对象的值。

克隆分为:浅克隆和深克隆。

浅克隆是指:浅克隆只是克隆当前的对象,不克隆该对象所应用的对象

深克隆是指:深克隆不但克隆当前的对象,而且还克隆该对象所引用的对象

看具体实例:

(模拟场景:用户对象、地址对象、用户对象拥有地址对象)

一、浅克隆

输出结果:CST=泉州

可以看到,虽然User对象可以单独操作,但是视图去修改User下的Address值,仍然是改变了原始用户下的Address值

二、深克隆:

测试类同上,

输出结果:CST=长乐

这样,才是我们想要的结果。无论修改当前对象还是当前对象所包含的对象,都是两个独立的操作,互不影响。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter