java中的浅克隆和深克隆是什么
克隆是指克隆对象,在堆空间复制一块内存,是完全的两个对象,不是指针指向!浅克隆是指克隆一个对象,而该对象的属性只是基本数据类型,只克隆出该对象!深度克隆是指克隆的目标里面还有引用类型,引用类型里还有引用类型,同时把引用类型克隆出来叫深度克隆!常用的方法有两种,第一,需克隆的对象实现cloneable接口;第二,使用commons包提供的克隆方法。这两种方法都能实现深度克隆!
java中克隆一个对象对象的属性改变另一个改变吗
不改变。java中克隆一个对象对象的属性改变另一个不改变。属于值传递,改变一个对象的值,另一个不会受影响。
java如何实现对象的克隆
可以重载clone方法克隆对象
首先、该类要实现Cloneable的接口,不然执行clone方法的时候会抛出CloneNotSupportedException异常
然后、就在该类重载clone方法,自己加上克隆的逻辑,本人小白,手敲的代码
public class Book implement Cloneable{
private String name;
public Book(String name){
this.name=name;
}
@Override
public Book clone() throws CloneNotSupportedException {
return new Book(this.name);
}
}