JAVA对象复制与比较

高平历史网 2020-06-10 00:24:08

1.对象的复制

one()的使用

3.对象实例的比较

////////////////////

//

/////////////////////

1.对象的复制

String str1 = "This is a string!" //这里是 "对象引用" 的复制

String str2 = new String(str1); //这里是 "对象实例" 的复制

浅复制: 只复制复合对象本身.

深复制: 除了复制复合对象本身, 还复制了复合对象的引用的对象实例.

例如:

class Pupil{

public Pupil(String sno, String name, int age){

o = new String(sno);

= new String(name);

e = age;

}

public String getSno() {

return sno;

}

public String getName() {

return name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

e = age;

}

private String sno;

private String name;

private int age;

}

public class CopyDemo {

public static Pupil[] shallowCopy(Pupil[] aClass) {

Pupil[] newClass = new Pupil[ngth];

//此时newClass 与aClass 指向同一块内存

for(int i=0; i

newClass[i] = aClass[i];

return newClass;

}

public static Pupil[] deepCopy(Pupil[] aClass) {

Pupil[] newClass = new Pupil[ngth];

//此时newClass 与aClass 的相应sno , name 指向同一块内存

for(int i=0; i

String sno = aClass[i]其强大的集群化宣传优势还将进一步突显。”.getSno();

String name = aClass[i].getName();

int age = aClass[i]李彦宏与斯坦福大学学生在一起.getAge();

newClass[i] = new Pupil(sno, name, age);

}

return newClass;

}

public static Pupil[] deeperCopy(Pupil[] aClass) {

Pupil[] newClass = new Pupil[ngth];

//完全的复制

for(int i=0; i

String sno = new String(aClass[i].getSno());

String name = new String(aClass[i].getName());

int age = aClass[i].getAge();

newClass[i] = new Pupil(sno, name, age);

}

return newClass;

}

}

one()的使用

* one()

* Cloneable 接口

* CloneNotSupportedException

a. 使用one 进行复制

骨坏死
小儿感染科
吃什么可以治小便发黄
友情链接