Effective Java ѧϰ±Ê¼Ç(9)
ͨ³£,ÓÐÒ»ÀàÎÊÌâµÄ²úÉú¶¼ÊÇÓÉÓÚûÓÐÖØÔØhashCodeÕâ¸ö·½·¨. µ±ÄãÖØÔØequalsºó,hashCode±ØÐëÖØÔØ,·ñÔòÔÚʹÓÃHashMap, HashSet, HashtableµÄʱºò,»á³ö´í.
¶ÔÓÚhashCodeÓм¸¸öÔÔò.
1. ²»¹Üʲôʱºòµ÷ÓÃhashCode,Èç¹ûͬһ¸ö¶ÔÏóÓëhashCodeÏà¹ØµÄ×Ö¶ÎûÓÐÐ޸ĵϰ,Õâ¸ö·½·¨µÄ·µ»ØÖµ±ØÐëÏàͬ. µ«²»±ØºÍÁíÒ»¸öÓ¦ÓóÌÐòÖеÄÖµÏàµÈ.
2. µ±Á½¸ö¶ÔÏóequalsµÄʱºò,ÆähashCodeÒ²±ØÐëÏàͬ.
3.ûÓÐÇ¿ÖÆÁ½¸ö²»Ò»ÑùµÄ¶ÔÏó²»ÄÜ·µ»ØÏàͬµÄhashCode, µ«ÊÇҪעÒâµÄ,Èç¹ûHash±íÖгåͻ̫¶à,»á½µµÍ³ÌÐòÐÔÄÜ.
Ò»¸öºÃµÄhashCodeº¯Êý£¬ÄܶԲ»Í¬µÄ¶ÔÏ󷵻ز»Í¬µÄÖµ¡£Ð´Ò»¸öºÃµÄhashCode²»ÊÇÏëÏñµÄÄÇôÀ§ÄÑ£¬Èç¹û²ÎÕÕÒÔÏµķ½·¨µÄ»°£º
1. ´¢´æÒ»¸ö·ÇÁã³£Á¿£¬Èç17£¬×÷Ϊ·µ»ØÖµ¡£
2. ¶Ôÿһ¸öÓбȽÏÒâÒåµÄ³ÉÔ±£¬²ÎÕÕÒÔÏ£º
a. ¼ÆËãÊý×ÖÐ͵Ähash code
i. Èç¹ûÊÇboolean, ¼ÆËã(f?1:0)
ii. Èç¹ûÊÇbyte char,short or int ¼ÆË㣬(int)f
iii. Èç¹ûÊÇlong, ¼ÆËã(int) ( f ^ (f >>>32))
iv. Èç¹ûÊÇfloat, ¼ÆËãFloat.floatToIntBits(f);
v. Èç¹ûÊÇdouble, ¼ÆËãDouble.doubleToLongBits(f), µÃµ½³¤ÕûÐÍÊý×ÖÇë²Î¼û iii.
vi. Èç¹ûÊǸö¶ÔÏóµÄÒýÓ㬾͵÷ÓÃÕâ¸ö¶ÔÏóµÄhashcode
vii,Èç¹ûÊÇÊý×飬¾Í¶Ôÿ¸öÔªËØ°´ÉÏÊöÔÔò×ö¡£
b. ¼ÆËãhashCode °´ÒÔϹ«Ê½¡£
result = 31 * result + c; // cÊÇ ÉÏÃæ¼ÆËãµÄÖµ
3. ·µ»ØÖµ¡£
4. д²âÊÔÓÃÀý²âÊÔ¡£
ҪעÒâµÄÊÇ£¬Äã¿ÉÒÔÔÚhashCodeÖкöÂÔһЩֵ£¬µ«ÊÇͬÑù£¬ÕâЩֵҲ²»ÄÜÔÚequalsÖÐÒýÓá£
Ïà¹ØÎĵµ£º
JAVA¿ª·¢Õß×ȥµÄ20¸öÓ¢ÎÄÍøÕ¾
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨¼°Ê¾Àý´úÂë, ÕâÊÇÒ»¸ö²»´íµÄÈ¥´¦.
2.[http://www.onjava.com] – O’ReillyµÄJavaÍøÕ¾. ÿÖܶ¼ÓÐÐÂÎÄÕÂ.
3.[http://java.sun.com] – ¹Ù·½µÄJava¿ª·¢ÕßÍøÕ¾ &nda ......
¿ÉÒÔ˵´úÀíÊÇjavaÊ®·ÖÖØÒªµÄÒ»ÖÖ»úÖÆ£¬ÁíÒ»¸öµ±È»ÊÇÊôÓÚ·´ÉäÁË£¬jdkÖе¥¶À½²µ½ÁË·´ÉäAPI£¨java.lang.reflect£©£¬¿ÉÄÜÓÐÈËÈÏΪ·´Éä¶Ô×ÊÔ´ÏûºÄ±È½ÏÀ÷º¦£¬È·ÊµÒ²ÊÇ£¬·´Éä¿Ï¶¨ÊÇÒªÏûºÄ×ÊÔ´µÄ£¬µ«Ò²²»ÊÇʲô¶¼ÒªÓõ½·´É䣬ËùÒÔ×î¼ÑÊÔÑéÓ¦¸ÃÊÇÔÚ×ÊÔ´ÏûºÄ³Ì¶ÈºÍ·´ÉäµÄʹÓó̶ÈÖ®¼äÕÒµ½Ò»¸öƽºâµã£¬±¾ÎIJ¢²»´òËã½²·´É䣬¹ØÓÚ·´ÉäµÄÐ ......
Beanshell ¡¾Java¿ªÔ´ ¶¯Ì¬ÓïÑÔ¡¿
BeanshellÊÇÓÃJavaд³ÉµÄ£¬Ò»¸öСÐ͵ġ¢Ãâ·ÑµÄ¡¢¿ÉÒÔÏÂÔØµÄ¡¢Ç¶ÈëʽµÄJavaÔ´´úÂë½âÊÍÆ÷£¬¾ßÓжÔÏó½Å±¾ÓïÑÔÌØÐÔ¡£BeanShellÖ´Ðбê×¼JavaÓï¾äºÍ±í´ïʽ£¬ÁíÍâ°üÀ¨Ò»Ð©½Å±¾ÃüÁîºÍÓï·¨¡£Ëü½«½Å±¾»¯¶ÔÏó¿´×÷¼òµ¥±Õ°ü·½·¨£¨simple method closure£©À´Ö§³Ö£¬¾ÍÈçͬÔÚPerlºÍJavaScri ......
±¾ÎÄÌṩjava¶àÏ̷ֱ߳ð¶¨Ê±¶Áдͬһ¸öÎļþµÄÑùÀý£¬ÆäÖÐÁ½¸öỊ̈߳¬Ò»¸öÿ·ÖÖÓдÈ뵱ǰʱ¼äµ½Ö¸¶¨Îļþ£¬ÁíÒ»¸öÏ̶߳Á³öÿ·ÖÖÓÐÂдµÄÄÚÈÝ¡£
ʹÓüòµ¥µÄThread.sleep¼¼ÊõʵÏÖ¶¨Ê±
package test.thread;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
im ......
1. Òò×Ó
ÉϴνéÉÜÁË¡¶JAVAʵÏÖAES¼ÓÃÜ¡·£¬ÖмäÌáµ½½üЩÄêDESʹÓÃÔ½À´Ô½ÉÙ£¬ÔÒò¾ÍÔÚÓÚÆäʹÓÃ56λÃÜÔ¿£¬±È½ÏÈÝÒ×±»ÆÆ½â£¬½üЩÄêÀ´Öð½¥±»AESÌæ´ú£¬AESÒѾ±ä³ÉĿǰ¶Ô³Æ¼ÓÃÜÖÐ×îÁ÷ÐÐËã·¨Ö®Ò»£»AES¿ÉÒÔʹÓÃ128¡¢192¡¢ºÍ256λÃÜÔ¿£¬²¢ÇÒÓÃ128λ·Ö×é¼ÓÃܺͽâÃÜÊý¾Ý¡£±¾Îľͼòµ¥½éÉÜÈçºÎͨ¹ ......