java深拷贝和浅拷贝
http://lovelace.iteye.com/blog/182772 参考
Java默认为深拷贝,自定义类型默认浅拷贝
浅拷贝,在修改其中一个值另一个也改变
深拷贝,使得两个量具有相同的初值,但后续任一改变不影响另一个
基本类型可以使用浅拷贝,数组类型,对象类型都需要深拷贝
public Object clone() {
A o = null;
try {
o = (A) super.clone();
o.name=(String[])name.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
public class A implements Cloneable {
public String name[];
public A(){
name=new String[2];
}
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
http://lovelace.iteye.com/blog/182772 参考
Java默认为深拷贝,自定义类型默认浅拷贝
浅拷贝,在修改其中一个值另一个也改变
深拷贝,使得两个量具有相同的初值,但后续任一改变不影响另一个
基本类型可以使用浅拷贝,数组类型,对象类型都需要深拷贝
public Object clone() {
A o = null;
try {
o = (A) super.clone();
o.name=(String[])name.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
public class A implements Cloneable {
public String name[];
public A(){
name=new String[2];
}
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}