Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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ÊÇ ÉÏÃæ¼ÆËãµÄÖµ£¬Ñ¡Ôñ31ÓÐÁ½¸öÔ­Òò£¬Ò»ÊÇËü×ã¹»´óµÄËØÊý£¬¶þÊÇËüÄܹ»±»ÐéÄâ»úÓÅ»¯ i * 31 = ( i << 5 -1)
3. ·µ»ØÖµ¡£
4. д²âÊÔÓÃÀý²âÊÔ¡£
ҪעÒâµÄÊÇ£¬Äã¿ÉÒÔÔÚhashCodeÖкöÂÔһЩֵ£¬µ«ÊÇͬÑù£¬ÕâЩֵҲ²»ÄÜÔÚequalsÖÐÒýÓá£
@Override public int hashCode() {
int result = 17;
result = 31 * result + areaCode;
result = 31 * result + prefix;
result = 31 * result + lineNumber;
return result;
}
Èç¹ûÒ»¸ö¶ÔÏóÊDz»¿É±äµÄ£¬Ôò¿É²ÉÓÃÁíÒ»ÖÖ·½Ê½¡£
private volatile int hashCode;
@Override public int hashCode() {
        int result = hashCode;
        if (result == 0) {
         &nb


Ïà¹ØÎĵµ£º

java ÕýÔò±í´ïʽ

< type="text/javascript">  ÖÚËùÖÜÖª£¬ÔÚ³ÌÐò¿ª·¢ÖУ¬ÄÑÃâ»áÓöµ½ÐèҪƥÅä¡¢²éÕÒ¡¢Ìæ»»¡¢ÅжÏ×Ö·û´®µÄÇé¿ö·¢Éú£¬¶øÕâЩÇé¿öÓÐʱÓֱȽϸ´ÔÓ£¬Èç¹ûÓô¿±àÂ뷽ʽ½â¾ö£¬ÍùÍù»áÀ˷ѳÌÐòÔ±µÄʱ¼ä¼°¾«Á¦¡£Òò´Ë£¬Ñ§Ï°¼°Ê¹ÓÃÕýÔò±í´ïʽ£¬±ã³ÉÁ˽â¾öÕâһì¶ÜµÄÖ÷ÒªÊֶΡ£
 ´ó ¼Ò¶¼ÖªµÀ£¬ÕýÔò±í´ïʽÊÇÒ»ÖÖ¿ÉÒÔÓÃÓÚÄ£Ê ......

JAVA¶ÁÈ¡PPTÎļþ

import java.io.InputStream;
import org.apache.lucene.document.Document;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
public Document getDocument(Index index, String ur ......

JavaÖÐÊýÖµÀàÐÍת»»£¨byteºÍint£©

ÔÚJava ÖÐÊý¾ÝÀàÐ͵Ä×Ô¶¯×ª»»ÀÏÊdzöÏÖһЩÎÊÌâ
    byte b1 =1 , b2 = 12;  //Äܹ»Í¨¹ý
    byte b3 = 128             //±àÒëµÄʱºò²»ÄÜͨ¹ý
ÎÒÃÇÖªµÀJavaÖÐÊý¾ÝÀàÐÍbyte shout char ÔÚ½øÐмÆËãµÄʱºò¶¼ÊÇ» ......

javaËø»úÖÆSynchronized


Ô­ÎÄÒý×Ôhttp://hi.baidu.com/heyinjie/blog/item/608ee7108f1f4802203f2e35.html
´ò¸ö±È·½£ºÒ»¸öobject¾ÍÏñÒ»¸ö´ó·¿×Ó£¬´óÃÅÓÀÔ¶´ò¿ª¡£·¿×ÓÀïÓкܶ෿¼ä£¨Ò²¾ÍÊÇ·½·¨£©¡£ÕâЩ·¿¼äÓÐÉÏËøµÄ£¨synchronized·½·¨£©£¬ ºÍ²»ÉÏËøÖ®·Ö£¨ÆÕͨ·½·¨£©¡£·¿ÃſڷÅ×ÅÒ»°ÑÔ¿³×£¨key£©£¬Õâ°ÑÔ¿³×¿ÉÒÔ´ò¿ªËùÓÐÉÏËøµÄ·¿¼ä¡£ÁíÍâÎÒ°ÑËùÓÐÏë ......

Java NIO ѧϰ±Ê¼Ç ByteBuffer £¨ÔçÆÚ±Ê¼Ç£©

£¨²Î¿¼ “ibm nioÈëÃÅ”£©
ÔÚ NIO ¿âÖУ¬ËùÓÐÊý¾Ý¶¼ÊÇÓûº³åÇø´¦ÀíµÄ¡£ÔÚ¶ÁÈ¡Êý¾Ýʱ£¬ËüÊÇÖ±½Ó¶Áµ½»º³åÇøÖеġ£ÔÚдÈëÊý¾Ýʱ£¬ËüÊÇдÈëµ½»º³åÇøÖеġ£ÈκÎʱºò·ÃÎÊ NIO ÖеÄÊý¾Ý£¬¶¼Êǽ«Ëü·Åµ½»º³åÇøÖС£»º³åÇøÊµÖÊÉÏÊÇÒ»¸öÊý×顣ͨ³£ËüÊÇÒ»¸ö×Ö½ÚÊý×飬µ«ÊÇÒ²¿ÉÒÔʹÓÃÆäËûÖÖÀàµÄÊý×é¡£µ«ÊÇÒ»¸ö»º³åÇø²»½ö½öÊÇÒ» ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ