浅拷贝(Object类中的clone()方法)是指在拷贝对象时,对于基本数据类型的变量会从新复制一份,而对于引用类型的变量只是对引用进行拷贝。java
深拷贝(或叫深克隆) 则是对对象及该对象关联的对象内容,都会进行一份拷贝。工具
package cn.xm.exam.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; /** * 深复制的工具类 * * @author Administrator * */ public class CloneUtils { @SuppressWarnings("unchecked") public static <T> T cloneObj(T obj) { T retVal = null; try { // 将对象写入流中 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(obj); // 从流中读出对象 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bais); retVal = (T) ois.readObject(); } catch (Exception e) { e.printStackTrace(); } return retVal; } }