// 浅拷贝public class Prototype implements Cloneable { private String id; public Prototype(String id) { this.id = id; } public String getId() { return id; } public void setId(String id) { this.id = id; } @Override public String toString() { return "id=" + this.id ; } public Object clone() { Object object=null; try { object=super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return object; }}// 深拷贝@Getter@Setterpublic class AddressSerializable implements Serializable { private String address1; private String address2; public AddressSerializable() { } public AddressSerializable(String address1, String address2) { this.address1 = address1; this.address2 = address2; }}@Getter@Setterpublic class UserSerializable implements Serializable { private String userName; private AddressSerializable address; public UserSerializable() { } public UserSerializable(String userName, AddressSerializable address) { this.userName = userName; this.address = address; } public static void main(String[] args) { AddressSerializable address = new AddressSerializable("小区1", "小区2"); UserSerializable user = new UserSerializable("小李", address); UserSerializable copyUser = SerializationUtils.clone(user); user.getAddress().setAddress1("小区3"); System.out.println(user == copyUser); System.out.println(user.getAddress().getAddress1().equals(copyUser.getAddress().getAddress1())); }}