See More

---------------------------- Java¶ÔÏóµÄÉîdzClone | ---------------------------- * dzclone£¬Ö»ÊǼòµ¥µÄ°É¶ÔÏóµÄÊôÐÔcopyµ½clone¶ÔÏóÉÏ,ÕâÑùÁ½¸ö¶ÔÏóµÄÏàͬÊôÐÔ¶¼Ö¸ÏòÁËͬһ¸öµØÖ· * Éîclone£¬clone¶ÔÏóµÄÊôÐÔ£¬ÊÇд´½¨µÄÊôÐÔ£¬ÓÉÔ´¶ÔÏóµÄÊôÐÔ¸´ÖƹýÀ´ * ÏÈ̸̸clone()·½·¨ * ÕâÊǶ¨ÒåÔÚ Object ÀïÃæµÄ·½·¨£¬JavaÀïÃæÈκζÔÏó¶¼Äܵ÷Ó㬵«ÊÇËüÊDZ»protectedÐÞÊÎ protected native Object clone() throws CloneNotSupportedException; * Ò²¾ÍÊÇ˵£¬ÎÒÃÇ×Ô¼º´´½¨µÄ¶ÔÏóû·¨Ö±½Óµ÷Óø÷½·¨£¬ÒòΪ×Ô¼º´´½¨ÀàµÄû·¨¸úObjectÔÚͬһ¸ö°ü¡£ * ±ØÐëÒª¸²Ð´µô¸Ã·½·¨£¬ÔÚ¸²Ð´·½·¨Öе÷ÓÃObjectµÄ·½·¨À´Íê³Éclone£¬cloneϸ½Ú²»ÓùØÐÄ£¬ÒòΪËüÊÇÒ»¸önative±¾µØ·½·¨¡£ * µ÷ÓÃclone·½·¨µÄÀ࣬±ØÐëҪʵÏÖCloneable½Ó¿Ú£¬¸Ã½Ó¿Ú¸úSerializableÒ»Ñù£¬Ö»ÊÇÒ»¸ö±ê¼Ç½Ó¿Ú£¬ÎÞÈκγéÏó·½·¨ ---------------------------- dzclone | ---------------------------- import java.util.Date; class Foo implements Cloneable { public Date date; Foo(Date date){ this.date = date; } @Override protected Object clone() throws CloneNotSupportedException { //µ÷Óø¸ÀàµÄ±¾µØ·½·¨£¬»ñµÃdzcloneµÄ¶ÔÏó return super.clone(); } } public class Main { public static void main(String[] args) throws CloneNotSupportedException { Foo foo = new Foo(new Date()); Foo cloneFoo = (Foo) foo.clone(); System.out.println(foo == cloneFoo); //false System.out.println(foo.date == cloneFoo.date); //true£¨Ç³clone,Á©¶ÔÏóµÄdateÆäʵ¶¼ÊÇͬһ¸ö£© } } ---------------------------- Éîclone | ---------------------------- import java.util.Date; class Foo implements Cloneable { public Date date; Foo(Date date){ this.date = date; } @Override protected Object clone() throws CloneNotSupportedException { //dzclone Foo¶ÔÏó Foo cloneFoo = (Foo) super.clone(); //dzclone Date£¨ÊôÐÔ£©¶ÔÏó Date cloneDate = (Date) date.clone(); //ÉîcloneÍê³É cloneFoo.date = cloneDate; return cloneFoo; } } public class Main { public static void main(String[] args) throws CloneNotSupportedException { Foo foo = new Foo(new Date()); Foo cloneFoo = (Foo) foo.clone(); System.out.println(foo == cloneFoo); //false System.out.println(foo.date == cloneFoo.date); //false } } ÔÚÉè¼ÆÄ£Ê½Ô­ÐÍÄ£ÐÍÖÐcloneÓÃµÃ¶à Æäʵ¾ÍÊǰÑÒ»¸ö¶ÔÏó½øÐи´ÖÆ£¬¸´ÖƳöÀ´µÄ¶ÔÏ󣬾ÍÓµÓÐÁËÔ­¶ÔÏóµÄËùÓÐÊôÐԺͷ½·¨£¬²¢ÇÒ¿ÉÒÔ»ùÓڸöÔÏó½øÐÐÔöÇ¿£¬Ð޸쬶øÇÒ²»»áÓ°ÏìÔ­¶ÔÏó