JavaÖеÄequals()ºÍhashCode()·½·¨
ÔÚJavaÓïÑÔÖУ¬Ò»°ã²»ÐèÒª×Ô¶¨Òåequals()ºÍhashCode()ÕâÁ½¸ö·½·¨£¬µ±ÐèÒª¶Ô¶ÔÏóµÄÄÚÈݽøÐбȽϵÄʱºò£¬²ÅÐèÒªÕâÑùÁ½¸ö·½·¨¡£ÀýÈ磬ÐèÒª°Ñ¶ÔÏó·ÅÈëHashSet»òÕ߰ѶÔÏó×÷Ϊkey·ÅÈëHashMap¡¢ Hashtableʱ£¬Èç¹û²»Ïë°Ñ¾ßÓÐÏàͬÄÚÈݵÄÁ½¸ö¶ÔÏó×÷ΪÁ½¸ö¶ÔÏóÀ´¿´´ý£¬¾ÍÐèÒªÖØ¶¨ÒåÕâÁ½¸ö·½·¨¡£ÕâÁ½¸ö·½·¨µÄʹÓÃÊǽôÃÜÅäºÏµÄ£¬ÒªÊÇÉè¼ÆÁËÆäÖÐÒ»¸ö£¬¾ÍÒªÉè¼ÆÁíÍâÒ»¸ö¡£
equals():
ÓÃÓÚÁ½¸ö¶ÔÏóµÄ±È½Ï£¬ÔÚObjectÀàÖÐÒѾʵÏÖÁËÕâ¸ö·½·¨£¬ÊǶԶÔÏóÄÚ²¿µØÖ·µÄ±È½Ï£¬¼´Èç¹ûÁ½¸ö¶ÔÏóµÄÄÚ²¿µØÖ·ÊÇÒ»ÑùµÄÔòÊÇÏàµÈµÄ¡£Èç¹ûÒª°´ÕÕ¶ÔÏóÄÚÈݵĽøÐбȽϣ¬¾ÍÐèÒªÖØÔØÕâÁ½¸ö·½·¨¡£JavaÓïÑÔ¶Ôequals()µÄÒªÇóÈçÏ£¬ÕâЩҪÇóÊDZØÐë×ñѵģº
¶Ô³ÆÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬ÄÇôy.equals(x)Ò²Ó¦¸Ã·µ»ØÊÇ“true”¡£
·´ÉäÐÔ£ºx.equals(x)±ØÐë·µ»ØÊÇ“true”¡£
ÀàÍÆÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬¶øÇÒy.equals(z)·µ»ØÊÇ“true”£¬ÄÇôz.equals(x)Ò²Ó¦¸Ã·µ»ØÊÇ“true”¡£
Ò»ÖÂÐÔ£ºÈç¹ûx.equals(y)·µ»ØÊÇ“true”£¬Ö»ÒªxºÍyÄÚÈÝÒ»Ö±²»±ä£¬²»¹ÜÄãÖØ¸´x.equals(y)¶àÉٴΣ¬·µ»Ø¶¼ÊÇ“true”¡£
ÈκÎÇé¿öÏ£¬x.equals(null)ÓÀÔ¶·µ»ØÊÇ“false”£»x.equals(ºÍx²»Í¬ÀàÐ͵ĶÔÏó)ÓÀÔ¶·µ»ØÊÇ“false”¡£
hashCode():
Õâ¸ö·½·¨·µ»ØµÄÊÇÒ»¸öÓÃÀ´½øÐÐhash²Ù×÷µÄÕûÐÍÊý£¬¿ÉÓÃÓÚÔÚCollection¶ÔÏóÖж¨Î»Ìض¨¶ÔÏóµÄλÖá£ObjectÖÐĬÈϵÄʵÏÖÊǰѶÔÏóÄÚ²¿µØÖ·×ª»¯ÎªÕûÊý×÷ΪhashCode¡£
hashCode()µÄ·µ»ØÖµºÍequals()µÄ¹ØÏµÈçÏ£º
Èç¹ûx.equals(y)·µ»Ø“true”£¬ÄÇôxºÍyµÄhashCode()±ØÐëÏàµÈ¡£
Èç¹ûx.equals(y)·µ»Ø“false”£¬ÄÇôxºÍyµÄhashCode()ÓпÉÄÜÏàµÈ£¬Ò²ÓпÉÄܲ»µÈ¡£
ÕâÀïÓбØÒªËµÃ÷Ò»ÏÂHashMapµÄÔÀí¡£ÎªÁËÓÅ»¯²éÕÒ¶ÔÏóµÄÐÔÄÜ£¬ÔÚHashMapÖа´ÕÕ¼üÖµ¶ÔÏóµÄhashÖµ·ÅÁËÈô¸É¸öÏä×Ó£¬µ±ÓÐÒ»¸ö¼üÖµ¶ÔÏó¼ÓÈë½øÀ´Ê±£¬µ÷ÓüüÖµ¶ÔÏóµÄhashCode()·½·¨£¬¸ù¾Ý¼ÆËã³öµÄhashÖµ°Ñ¶ÔÏó·ÅÈë¶ÔÓ¦µÄÏä×Ó¡£µ±¶Ô¼üÖµ¶ÔÏó½øÐвéÕÒʱ£¬Ê×ÏȼÆËã¶ÔÏóµÄhashÖµ£¬ÕÒµ½¶ÔÓ¦µÄÏä×Ó£¬È»ºóµ÷ÓÃequals()ÓëÏä×ÓÖеĶÔÏóÖð¸ö±È½Ï£¬Ö±µ½ÕÒ³öÏàµÈµÄ¶ÔÏó»òÕß±éÀúÁËÒ»±é¡£
Èç¹ûx.eq
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
JavaÓïÑÔÒýÈëÁËJavaÐéÄâ»ú£¬¾ßÓÐ¿çÆ½Ì¨ÔËÐеŦÄÜ£¬Äܹ»ºÜºÃµØÊÊÓ¦¸÷ÖÖWebÓ¦Óá£Í¬Ê±£¬ÎªÁËÌá¸ßJavaÓïÑÔµÄÐÔÄܺͽ¡×³ÐÔ£¬»¹ÒýÈëÁËÈçÀ¬»ø»ØÊÕ»úÖÆµÈй¦ÄÜ£¬Í¨¹ýÕâЩ¸Ä½øÈÃJava¾ßÓÐÆä¶ÀÌØµÄ¹¤×÷ÔÀí¡£
1£®JavaÐéÄâ»ú
JavaÐéÄâ»ú£¨Java Virtual Machine£¬JVM£©ÊÇÈí¼þÄ£ÄâµÄ¼ÆËã»ú£¬Ëü¿ÉÒÔÔÚÈκδ¦ÀíÆ÷ÉÏ£¨ÎÞÂÛÊÇÔÚ¼ÆËã»úÖл ......
ArrayList ºÍVectorÊDzÉÓÃÊý×鷽ʽ´æ´¢Êý¾Ý£¬´ËÊý×éÔªËØÊý´óÓÚʵ¼Ê´æ´¢µÄÊý¾ÝÒÔ±ãÔö¼ÓºÍ²åÈëÔªËØ£¬¶¼ÔÊÐíÖ±½ÓÐòºÅË÷ÒýÔªËØ£¬µ«ÊDzåÈëÊý¾ÝÒªÉè¼Æµ½Êý×éÔªËØÒÆ¶¯µÈÄÚ´æ²Ù×÷£¬ËùÒÔË÷ÒýÊý¾Ý¿ì²åÈëÊý¾ÝÂý£¬VectorÓÉÓÚʹÓÃÁËsynchronized·½·¨£¨Ḭ̈߳²È«£©ËùÒÔÐÔÄÜÉϱÈArrayListÒª²î£¬LinkedListʹÓÃË«ÏòÁ´±íʵÏÖ´æ´¢£¬°´Ðòº ......
¾Í¶àÏß³ÌÀ´Ëµ£¬ÎÒÃÇ¿ªÊ¼ÉèÏëÖ»ÓÐÁ½¸öỊ̈߳¨>2ʱÊDz»ÊÇËãÊýѧ¹éÄÉ·¨£¿£©ÄÇôÈç¹ûÁ½¸ö¶ÀÁ¢µÄÏ̻߳ᷢÉúÊ²Ã´ÄØ£¿
1¡£µ±Ò»¸öÏ߳̽øÈëmoniter£¨Ò²¾ÍÊÇ˵վÓÃÒ»¸öobject£©£¬ÁíÒ»¸öÏß³ÌÖ»Óеȴý»ò·µ»Ø£¬¶øÎÒÃǰѷµ»Ø¾Í³ÆÎªÒ»ÖÖģʽ£¬ÕâÖÖģʽµÄÓ¢ÎÄÊÇBalking¡£
2¡£ÕâÁ½¸öÏ߳̿ÉÒÔÊÇÓÐÐòµÄÖ´ÐУ¬¶ø²»ÊÇÈÃOSÀ´µ÷¶È£¬ÕâʱΠ......