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 ¿ÉÒÔʹ±àÒëÆ÷ÔÚ²»ÕýÈ·µÄº¯ÊýÇ©Ãûʱ±¨´í.
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/mutsinghua/archive/2010/01/23/5248724.aspx
Ïà¹ØÎĵµ£º
ÔÚ Java ³ÌÐòÖÐʹÓöàÏß³ÌÒª±ÈÔÚ C »ò C++ ÖÐÈÝÒ׵ö࣬ÕâÊÇÒòΪ Java ±à³ÌÓïÑÔÌṩÁËÓïÑÔ¼¶µÄÖ§³Ö¡£±¾ÎÄͨ¹ý¼òµ¥µÄ±à³ÌʾÀýÀ´ËµÃ÷ Java ³ÌÐòÖеĶàÏß³ÌÊǶàôֱ¹Û¡£¶ÁÍê±¾ÎÄÒÔºó£¬Óû§Ó¦¸ÃÄܹ»±àд¼òµ¥µÄ¶àÏ̳߳ÌÐò¡£
¡¡¡¡ÎªÊ²Ã´»áÅŶӵȴý£¿
¡¡¡¡ÏÂÃæµÄÕâ¸ö¼òµ¥µÄ Java ³ÌÐòÍê³ÉËÄÏî²»Ïà¹ØµÄÈÎÎñ¡£ÕâÑùµÄ³ÌÐòÓе¥¸ö¿ØÖ ......
±¾ÎÄÌṩjava¶àÏ̷ֱ߳ð¶¨Ê±¶Áдͬһ¸öÎļþµÄÑùÀý£¬ÆäÖÐÁ½¸öỊ̈߳¬Ò»¸öÿ·ÖÖÓдÈ뵱ǰʱ¼äµ½Ö¸¶¨Îļþ£¬ÁíÒ»¸öÏ̶߳Á³öÿ·ÖÖÓÐÂдµÄÄÚÈÝ¡£
ʹÓüòµ¥µÄThread.sleep¼¼ÊõʵÏÖ¶¨Ê±
package test.thread;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
im ......
JAVA³ÌÐòµÄÍâ±í×ÜÊÇÒ»°åÒ»Ñ۵ģ¬¿´¶àÁËÄÑÃâÉóÃÀÆ£ÀÍ£¬Äܲ»ÄÜʹÎÒÃǵÄJAVA³ÌÐòÍâ¹Û±äµÃ¸üÃÀ¹Û¸ü¶ÀÌØÄØ£¿´ð°¸Êǿ϶¨µÄ£¬ÎÒÃÇ¿ÉÒÔÈÃJAVA³ÌÐò¸ù¾ÝͼƬÀ´Éú³É×Ô¶¨ÒåµÄ²»¹æÔò´°Ìå¡£±ÈÈçÏÂͼµÄÕâÖÖÍâ¹Û£º
ͼÖеÄÕâ¸öÈËÎï(ÀÙÃ×ÀòÑÇ)±ãÊǶ¨ÒåºÃµÄ²»¹æÔò´°Ì壬ÔõôÑù£¿ºÜƯÁÁ°É£¡ÄÇôÈÃÎÒÃÇ¿ªÊ¼Ñ§Ï°°É¡£
Ê×ÏÈÒªË ......
Õâ¸öÔÔòºÜ¼òµ¥£¬¾ÍÊÇʹÓÃ˽Óй¹Ô캯Êý·ÀÖ¹À౻ʵÀý»¯¡£
ÓÐʱ£¬ÎÒÃÇ»áдһЩ¹¤¾ßÀ࣬Èçjava.lang.Math »òÊÇ java.util.Arrays, ÕâЩÀàÖж¼ÊǾ²Ì¬º¯Êý£¬ÔÚÉè¼ÆµÄʱºò£¬ÕâЩÀಢ²»ÊÇÓÃÀ´±»ÊµÀý»¯µÄ¡£Õâ¸öʱºò£¬¾ÍºÜÓбØÒª°Ñ¹¹Ô캯Êý˽Óл¯¡£
public class UtilityClass {
private UtilityClass() {
throw new Assertion ......