Effective Java ѧϰ±Ê¼Ç(8)
µ±ÖØÔØequals·½·¨Ê±,×ñѹßÀý. equals²»ÊÇÿ¸öÀà¶¼±ØÐëÖØÔØ,µ±ÒÔϼ¸¸öÌõ¼þÂú×ã,¿ÉÒÔ²»ÖØÔØequals. 1. ÀàµÄʵÀýÖ»ÓÐͬһ¸ö²Å±»ÅÐΪÏàµÈ. ÈçThreadÀà. 2. ²»ÓùØÐÄÁ½¸ö¶ÔÏóÊÇ·ñÂß¼ÏàµÈµÄʱºò,»òÊÇ˵±È½Ï¶ÔÏóûÓÐÒâÒå. 3.¸¸ÀàÒÑ¾ÖØÔØÁËequals,¶øÇÒ¸¸ÀàµÄequalsÒ²ÊÊÓÃÓÚ×ÓÀà,×ÓÀà¾Í²»ÓÃÖØÔØequals. 4.ÕâÊÇÒ»¸ö˽ÓÐÀà»òÊǰüÄÚ·ÃÎÊ,ÄãÈ·¶¨equals²»»á±»µ÷ÓÃ. ÄÇʲôʱºòʹÓÃequalsÄØ,µ±Á½¸ö¶ÔÏóÖ®¼äÓÐÂß¼ÏàµÈµÄÒâÒåµÄʱºò,¶øÆä¸¸ÀಢûÓÐÖØÔØÊʺϵÄequalsµÄʱºò, »»¾ä»°Ëµ,Ò²¾ÍÊÇÊý¾ÝÀà. ÕâÖÖÀàÓбȽÏÖµµÄÐèÇó, ¶ø²»ÊǼòµ¥µÄÅжÏÊDz»ÊÇͬһ¸ö¶ÔÏó. È»¶ø,¶ÔʵÀý»¯½øÐпØÖƵÄÊý¾ÝÀàÐͶÔÏó,Èçsingleton,²»ÓÃÖØÔØequals. ÖØÔØÒª×¢ÒâÒÔϼ¸¸öÔÔò: ·´Éä,¶Ô³Æ,´«µÝ,Ò»Ö ÁíÍâ,¶ÔÓÚnull,Ò»¶¨Òª·µ»Øfalse. ¸ßЧµÄequals¿ÉÒԲο¼ÒÔϼ¸µã. 1. ÓÃ==ÅжÏÊDz»ÊÇͬһ¸öʵÀý. 2. ʹÓÃinstanceofÅжÏÊDz»ÊÇͬһ¸öÀàÐÍ. 3.Ç¿ÖÆ×ª»¯³ÉÕýÈ·µÄÀàÐÍ. 4.¶Ôÿ¸öÓбȽÏÒâÒåµÄ³ÉÔ±±äÁ¿¶¼×÷¼ì²é. 5.µ±ÄãдÍêÖ®ºó,ÒªÎÊ×Ô¼º,Õâ¸öº¯ÊýÊDz»ÊǶԳƵÄ,¿É´«µÝµÄ,Ò»ÖµÄ. дÍêequalsºó,ҪעÒâ: 1. ÔÚÖØÔØequalsºó,±ØÐëÒªÖØÔØhashCode. 2. ²»Äܼòµ¥µÄ±È½ÏÒ»¸öfieldÊDz»ÊÇÏàµÈ. Èç¶ÔFileÕâ¶ÔÀà,Èç¹ûÁ½¸ö¶ÔÏó´ò¿ªµÄÊÇÏàͬÄÚÈݵÄÎļþ,´Ëʱ²»Ó¦¸ÃÅжÏΪÏàͬ. 3.²»ÒªÓÃÁíÒ»¸öÀàÐÍÀ´´úÌæ²ÎÊýÖеÄObject,·ñÔòÕâ¾Í²»ÊÇÖØÔØ. ´íÎóÀý×Ó: public boolean equals(MyClass o) {
...
} ÔÚ±àÒëǰʹÓÃ@Override ¿ÉÒÔʹ±àÒëÆ÷ÔÚ²»ÕýÈ·µÄº¯ÊýÇ©Ãûʱ±¨´í.
Ïà¹ØÎĵµ£º
¶þ·Ö²éÕÒ·¨ºÍÏßÐÔ²éÕÒ·¨
¶þ·Ö²éÕÒ·¨ÊÇÒ»ÖÖ±ÈÆÕͨÏßÐÔ²éÕÒ¿ìµÃ¶àµÄ²éÕÒËã·¨£¬µ«Ö»ÊÊÓÃÓÚÓÐÐò¼¯ºÏµ±ÖС£ÄÃÉýÐòÅÅÐòºóµÄÕûÐÍÊý×éÀ´Ëµ£¬¶þ·Ö·¨¾ßÌåµÄʵÏÖÔÀíÊÇ£ºÏȰѴý²éÕÒÊýaÓëÊý×éÖмäµÄÄǸöÊýx¶Ô±È£¬Èç¹ûÏàµÈ£¬Ö±½Ó·µ»ØxµÄË÷Òý£»Èç¹ûa´óÓÚx£¬ÔòÅųýµôÊý×éµÄÇ°ÃæÒ»°ë£¨°üÀ¨x£©£¬½Ó×ÅÄÃaÓëÊ£ÏÂÒ»°ëÊý×éÖмäµÄÄǸöÊýx¶Ô±È£¬Èç ......
×¢Ê͵ÄÔÔò
1¡¢ ×¢ÊÍÐÎʽͳһ
ÔÚÕû¸öÓ¦ÓóÌÐòÖУ¬Ê¹ÓþßÓÐÒ»ÖµıêµãºÍ½á¹¹µÄÑùʽÀ´¹¹Ôì×¢ÊÍ¡£Èç¹ûÔÚÆäËûÏîÄ¿×é·¢ÏÖËûÃǵÄ×¢Ê͹淶ÓëÕâ·ÝÎĵµ²»Í¬£¬°´ÕÕËûÃǵĹ淶д´úÂ룬²»ÒªÊÔͼÔڼȳɵĹ淶ϵͳÖÐÒýÈëеĹ淶¡£
2¡¢ ×¢Ê͵ļò½à
ÄÚÈÝÒª¼òµ¥¡¢Ã÷ÁË¡¢º¬Òå׼ȷ£¬·ÀÖ¹×¢Ê͵ĶàÒåÐÔ£¬´íÎóµÄ×¢ÊͲ»µ«ÎÞÒæ·´¶øÓк¦¡£
......
ÔÚÂÛ̳Àï¿´ÁËdaquan198163ËùдµÄ¡¶³õѧRORµÄÒÉ»ó¡·ÕâÆªÎÄÕ£¬robbinÔڻظ´ÖиøÁËÏêϸµÄ½â´ð£¬¿ÉÊÇ¿´Íê½â´ðÖ®ºó£¬ÎÒÒ²²úÉúÁËһЩÒÉ»ó£¬ÔÚ´ËÏëÎÊÎÊ¡£
ÔÚrobbinËù¸ø³öµÄ½â´ðµ±ÖУ¬¸ü¶àµÄÊDzûÊörailsµÄºÃ´¦£¬È»¶ø´ó¼Ò¶¼ÖªµÀ£¬railsÖ»Ê ......
/* ¸ßÊÖÖ®×÷£¬±¾È˽÷ÒÔÊÕ²ØÕßÉí·ÝÄóö¹²Ïí¹©´ó¼Ò²Î¿¼! */
/*
* ÏòÁ¿½Ó¿Ú
*/
package dsa;
public interface Vector {
//·µ»ØÏòÁ¿ÖÐÔªËØÊýÄ¿
public int getSize();
//ÅжÏÏòÁ¿ÊÇ·ñΪ¿Õ
public boolean isEmpty();
//È¡ÖÈΪrµÄÔªËØ
public Object getAtRank(int r)
throws ......
Finalizer ²»¿É¼Æ»®µÄ,Ò²ÊÇΣÏÕµÄ,Ò»°ãÒ²ÊDz»±ØÒªµÄ. ²»ÄÜÔÚfinalizerÖзÅÈκÎÓëÒÀÀµÊ±¼äÏà¹ØµÄ²Ù×÷,ÒòΪÄã²»ÖªµÀËüʲôʱºò±»Ö´ÐÐ. ±ÈÈçÔÚfinalizerÖйرÕÎļþµÄ×ö·¨¾ÍÊÇ´íÎóµÄ, ¸ù¾ÝJVMµÄʵÏÖ·½Ê½²»Í¬,ÓпÉÄܵ¼Ö´ò¿ªµÄÎļþÊý¹ý¶à¶øÎÞ·¨ÔÙ´ò¿ªÎļþ. Ò²²»ÄÜÔÚfinalizerÖиıä״̬,Èç¸øÊý¾Ý¿â½âËøµÈ. finalizer»¹ÄÜ´øÀ´Ñ ......