ÉîÈëdz³öJava clone¼¼Êõ
¡¡ÕâÊÇclone¼¼Êõ½éÉܵĵÚһƪ¡£±¾ÆªÖ÷Òª½éÉܶÔÏóclone¼¼ÊõµÄ»ù±¾ÖªÊ¶¡£
Clone»ù±¾ÖªÊ¶´¢±¸
ÔÚJavaÀïÌáµ½clone¼¼Êõ£¬¾Í²»Äܲ»Ìájava.lang.Cloneable½Ó¿ÚºÍº¬ÓÐclone·½·¨µÄObjectÀà¡£ËùÓоßÓÐclone¹¦ÄܵÄÀà¶¼ÓÐÒ»¸öÌØÐÔ£¬ÄǾÍÊÇËüÖ±½Ó»ò¼ä½ÓµØÊµÏÖÁËCloneable½Ó¿Ú¡£·ñÔò£¬ÎÒÃÇÔÚ³¢ÊÔµ÷ÓÃclone£¨£©·½·¨Ê±£¬½«»á´¥·¢CloneNotSupportedExceptionÒì³£¡£ÏÂÃæÎÒÃÇͨ¹ý¶ÔObjectÀàµÄ²¿·ÖÔ´ÂëµÄ·ÖÎö£¬À´·¢ÏÖºÍÀí½âÕâÒ»ÌØÐÔ¡£Çë¿´JDKÖÐObject# clone()·½·¨µÄÔ´Â룺
/*
…………
* @return a clone of this instance.
* @exception? CloneNotSupportedException? if the object's class does not
*support the Cloneable interface. Subclasses
*that override the clone method can also
* throw this exception to indicate that an instance cannot
*be cloned.
* @see java.lang.Cloneable
*/
protected native Object clone() throws CloneNotSupportedException;
Õâ¶ÎÔ´ÂëµÄ@exception²¿·ÖµÄÃèÊöÄÚÈÝ֤ʵÁËÉÏÎĹØÓÚclone¶ÔÏóÌØÐÔÂ۶ϵÄÕýÈ·ÐÔ¡£ËüÃ÷È·Ö¸³ö¶ÔÏóÀà±ØÐëÖ§³ÖCloneable½Ó¿Ú£¬·ñÔò¼´Ê¹ÅÉÉúÀา¸ÇÁËObject#clone()·½·¨£¬Ò²Í¬Ñù»áÅ׳öCloneNotSupportedExceptionÕâ¸öÒì³£¡£¹ØÓÚ¸²¸Çclone()·½·¨£¬ºóÐøÎÄÕ½«»áÓÃרÃÅÆª·ù½øÐбȽÏÏêϸµÄ·ÖÎö.
ÔÚÉÏһƪÖУ¬½éÉÜÁËjavaÀïcloneµÄ»ù±¾ÖªÊ¶¡£±¾Æª½«×ÅÖØÃèÊöÈçºÎʵÏÖclone¡£
l cloneµÄʵÏÖ
1.ʵÏÖCloneable½Ó¿Ú
ͨ¹ýÉÏһƪµÄ½éÉÜ£¬ÎÒÃÇÖªµÀ£¬Ò»¸öÀàÈôÒª¾ß±¸clone¹¦ÄÜ£¬¾Í±ØÐëʵÏÖCloneable½Ó¿Ú¡£×öµ½ÕâÒ»²½£¬clone¹¦ÄÜÒѾ»ù±¾ÊµÏÖÁË¡£Clone¹¦ÄܶÔÎÒÃÇÀ´Ëµ£¬×îÖ÷ÒªµÄ»¹ÊÇÒªÄܹ»Ê¹ÓÃËü¡£ÄÇôÎÒÃÇÈçºÎ²ÅÄÜʹÓÃclone¹¦ÄÜÄØ£¿´ð°¸ÊǸ²¸ÇObject#clone()·½·¨¡£
2. ¸²¸ÇObject#clone()·½·¨
ΪʲôÐèÒª¸²¸ÇObject#clone()·½·¨£¿ÕâÀïµÃÔٴδÓjdkÔ´Âë˵Æð¡£JDKÖÐObject# clone()·½·¨µÄÔÐÍÊÇ£º
protected native Object clone() throws CloneNotSupportedException;
ÊÇ·ñ×¢Òâµ½£¬ÕâÀïclone()·½·¨ÐÞÊηûÊÇprotected£¬¶ø²»ÊÇpublic¡£ÕâÖÖ·ÃÎʵIJ»¿É¼ûÐÔʹµÃÎÒÃǶÔObject#clone()·½·¨²»¿É¼û¡£ÏàÐŶÁÕßÒÑÃ÷°×ΪʲôҪ¸²¸ÇObject#clone()·½·¨¡£¶øÇÒ£¬¸²¸ÇµÄ·½·¨µÄÐÞÊηû±ØÐëÊÇpublic£¬Èç¹û»¹±£ÁôΪprotected£¬¸²¸Ç½«±äµÃûÓÐʵ¼ÊÒâÒå¡£ÏÂÃæ¾ÙÒ»¸ö¾ßÓÐclone¹¦Äܵļòµ¥µÄÀý×Ó£º
/*
* ¾ßÓÐclone¹¦ÄܵÄÀàµÄÀý×Ó
*/
public class CloneableObjExampl
Ïà¹ØÎĵµ£º
native2ascii.exe ÊÇ Java µÄÒ»¸öÎļþתÂ빤¾ß£¬Êǽ«ÌØÊâ¸÷ÒìµÄÄÚÈÝ ×ªÎª ÓÃÖ¸¶¨µÄ±àÂë±ê×¼ÎÄÌåÐÎʽͳһµÄ±íÏÖ³öÀ´£¬Ëüͨ³£Î»ÓÚ JDK_home\bin Ŀ¼Ï£¬°²×°ºÃ Java SE ºó£¬¿ÉÔÚÃüÁîÐÐÖ±½ÓʹÓà native2ascii ÃüÁî½øÐÐתÂ룬ʾÀý£º
native2ascii -encoding 8859_1 c:\test.txt c:\temp.txt
½« test.txt ÎļþÄÚÈÝÓà 8859_1 × ......
ÒëÕß×¢ :Äã¿ÉÄÜ»á¾õµÃJavaºÜ¼òµ¥£¬ObjectµÄequalsʵÏÖÒ²»á·Ç³£¼òµ¥£¬µ«ÊÇÊÂʵ²¢²»ÊÇÄãÏëÏóµÄÕâÑù£¬ÄÍÐĵĶÁÍê±¾ÎÄ£¬Äã»á·¢ÏÖÄã¶ÔJavaÁ˽âµÄÊÇÈç´ËµÄÉÙ¡£Èç¹ûÕâÆªÎÄÕÂÊÇÒ»·ÝJava³ÌÐòÔ±µÄÈëÖ°±ÊÊÔ£¬ÄÇô²»ÖªµÀÓжàÉÙÈË»áµôÂäµ½ÕâÑùµÄÏÝÚåÖС£ÔÎÄת×Ôhttp://www.artima.com/lejava/articles/equality.html Èýλ×÷Õß¶¼ÊDz»Í¬Áì ......
ÔÚÃüÁîÐнçÃæÓÃnative2ascii¹¤¾ß
1.½«ºº×ÖתΪUnicode:
C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii
²âÊÔ
\u6d4b\u8bd5
2.½«Unicodeת»»Îªºº×Ö:
C:\Program Files\Java\jdk1.5.0_04\bin>native2ascii -reverse ......
/**
* ### Õæ難µÄ題Ä¿: ¹·Æ¨ÑÝËã·¨ (測資ºÜ機車)
* 測驗結¹û: x.xx0 ms
* 測驗ÈÕÆÚ: 200y-mm-dd
* @author Raymond Wu (Сè°Íè)
*/
public class Main {
// 輸Èë緩衝區 (緩衝¿Õ ......
(×¢Ò⣺ÏÂÃæÎļþ¶¼ÔÚf:\myjavaÖУ©
{
3¸öÔ´Îļþ£ºMyApp.java,MyLib.java,PrintSchool.java;
½¨Îļþ¼Ðorg\Jie
ÆäÖÐMyLibºÍPrintSchool·ÅÔÚ°üorg.JieÖУ¨import org.Jie)
ÔÚcmd.exeÖÐÔËÐÐ
javac -d org\Jie MyLib.java //ÔÚorg\Jie\org\jieÉú³ÉÁËMyLib.classÎļþ£¬½«¸ÃÎļþ ......