61. 为什么要使用克隆?
想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了,Java语言中克隆针对的是类的实例。
62. 如何实现对象克隆?
有两种方式:
1). 实现Cloneable接口并重写Object类中的clone()方法;
2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class MyUtil {
private MyUtil() {
throw new AssertionError();
}
@SuppressWarnings("unchecked")
public static <T extends Serializable> T clone(T obj)
throws Exception {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bout);
oos.writeObject(obj);
ByteArrayInputStream bin =

Java面试中关于对象拷贝的常见问题,包括克隆的原因、实现方式以及深拷贝和浅拷贝的区别。克隆用于保留原有数据的同时进行操作,实现方式有实现Cloneable接口或使用序列化。深拷贝与浅拷贝的主要区别在于是否复制对象的引用,深拷贝确保修改一个对象不会影响另一个。
最低0.47元/天 解锁文章
1360

被折叠的 条评论
为什么被折叠?



