淺拷貝(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; } }