Java clone() 与 new 的区别

首先要一个类有clone()复制方法,必须实现一个接口Cloneable

class CloneClass implements Cloneable{  public int aInt;  public Object clone(){   CloneClass o = null;   try{    o = (CloneClass)super.clone();   }catch(CloneNotSupportedException e){    e.printStackTrace();   }   return o;  } }

下面例子说明

Class A implements Cloenable{

public int i=1;

public Object clone(){

o=(CloneClass)super.clone():

try{

}catch(CloneNotException e){

e.printStackTrack();

} }

}

Class B{

public int i=1;

}

如果你想要一个对象的复本,但还需要它实时的值就用clone,用new 生成的实例 带的字段 不会变 i=1;

A a =new A();

a.i=2;

B b=new B()

b.i=2;

如果给A 和B各创建一个复本a2 b2

A a2=a.clone();

B b2=new B();

a2的 i=2 ;b2 的i=1; 这就是区别

经验分享 程序员 微信小程序 职场和发展