昆明java培训
达内昆明广州春城路

18487146383

热门课程

【昆明Java培训】java克隆

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

昆明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开发就到昆明达内Java培训班!了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:java培训:REST WebService与SOAP WebService的比较
下一篇:bug解决过程:数据迁移

AI初创企谷歌跑在前面了!达内java培训

‘资产荒’为什么这么说?【达内培训】

java集合-Iterator迭代

阿里云澳门战略携手创“城市大脑”——达内编程培训

选择城市和中心
贵州省

广西省

海南省

台湾