课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > 【昆明Java培训】java克隆
  • 【昆明Java培训】java克隆

    发布:昆明Java培训      来源:达内新闻      时间:2016-09-28

  • 昆明Java培训的老师今天给大家讲java克隆,

    1. About

    Java中,对于基本数据类型可以使用"="来克隆,此时两个对象除了相等是没有任何关系的;

    而对于引用类型,却不能简单地使用"="来克隆,这与java内存空间使用有关。

    java将内存空间分为两块,即堆和栈。

    在栈中保存基本类型和引用变量,在堆中保存对象。

    对于引用变量而言,使用"="将修改引用,而不是赋值堆中的对象,此时两个引用变量将指向同一个对象。

    因此,修改一个引用变量将改变另一个引用变量。

    2.浅克隆

    如果对象的成员变量都是基本类型,可以实现浅克隆完成。

    对象实现Cloneable接口,并复写clone()方法

    public class A implements Cloneable{

    //.............

    public A clone(){

    A a = null;

    try{

    a = (A)super.clone();

    }catch(CloneNotSupportedException e {

    //......

    }

    return a;

    }

    }

    3.深克隆

    如果对象中包含引用类型变量,需要深克隆

    即对象本身实现Cloneable,复写clone()方法;同时可变成员变量也实现Cloneable,并复写clone()

    public class A implements Cloneable{

    private C c;

    //get set

    //.............

    public A clone(){

    A a = null;

    try{

    a = (A)super.clone();

    a.c = c.clone();

    }catch(CloneNotSupportedException e {

    //......

    }

    return a;

    }

    }

    public class C implements Cloneable{

    //.............

    public C clone(){

    C c = null;

    try{

    c = (C)super.clone();

    }catch(CloneNotSupportedException e {

    //......

    }

    return c;

    }

    }

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:Java培训:java循环结构

下一篇:java设计模式:单例模式

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56