Effective Java ѧϰ±Ê¼Ç£¨13£©
Ó°ÏìÄ£¿éÉè¼ÆºÃÓ뻵µÄÒ»¸öÖØÒªÒòËØ¾ÍÊÇÕâ¸öÄ£¿éÊÇ·ñÒþ²ØËüµÄÄÚ²¿Êý¾ÝºÍÆäËûһЩʵÏÖϸ½Ú¡£
ÐÅÏ¢Òþ²ØµÄºÃ´¦£º·½±ã¶ÀÁ¢¿ª·¢£¬²âÊÔ£¬ÓÅ»¯£¬Ê¹Óã¬Àí½âºÍÐ޸ġ£Äܹ»Ìá¸ßϵͳ¿ª·¢ËÙ£¨ÒòΪ¸÷Ä£¿é¿ÉÒÔ²¢Ðпª·¢£©£¬Ò²ÄÜÒ×ÓÚά»¤ºÍµ÷ÊÔ£¬Ò²ÄܼõÉÙϵͳ¹¹½¨µÄ·çÏÕ¡£
ÒªÉè¼ÆÁ¼ºÃµÄÄ£¿é£¬¹æÔòºÜ¼òµ¥£¬¾ÍÒ»¾ä»°£ºÊ¹Ã¿¸öÀà»ò½Ó¿Ú¾¡Á¿²»¿É·ÃÎÊ¡£
1.¶ÔÓÚtop-levelµÄÀàºÍ½Ó¿Ú£¨ÓëÎļþÃûÏàͬµÄÀà»ò½Ó¿Ú£©£¬Ö»ÓÐÁ½ÖÖ·ÃÎÊȨÏÞ£º°ü¿É·ÃÎÊ£¬¹«¹²·ÃÎÊ¡£Èç¹ûÕâ¸öÀà¿ÉÒÔÉèΪ°ü¿É·ÃÎÊ£¬ÄÇËü¾ÍÓ¦¸ÃÊǰü¿É·ÃÎÊ£¬ÕâÑùÔÚ½«À´¾Í¿ÉÒÔÐ޸ģ¬Ìæ»»»òɾ³ýÕâЩÀà¶ø²»Ó°ÏìϵͳµÄÏòÉϼæÈÝÐÔ¡£
2. Èç¹ûÒ»¸ö°ü¿É·ÃÎʵÄÀà»ò½Ó¿ÚÖ»ÊDZ»Ò»¸öÀàʹÓã¬ÄÇô¿ÉÒÔ¿¼ÂǰÑÕâ¸öÀà×÷ΪnestedÀà¡£
ÓÐʱΪÁ˲âÊÔ·½Ã棬ÓпÉÄÜ»áÌá¸ßÀà»ò½Ó¿ÚµÄ¿É·ÃÎÊ£¬ÕâÖÖ·½·¨¿ÉÐУ¬µ«Òª×¢Òâ×î¸ßÖ»ÄÜÌáµ½°ü¿É·ÃÎÊÐÔ£¬¶ø²»ÄÜÒòΪ²âÊԾͰÑÏà¹ØÀ౩¶µ½APIÖС£
×Ö¶ÎÓÀÔ¶²»ÄÜΪ¹«¹²µÄ£¬Èç¹ûÒ»¸ö×Ö¶ÎÊÇnon-final,»òÊÇÆäÖ¸ÏòµÄ¶ÔÏóÊǿɸıäµÄ£¬½«ÆäÉè¼ÆÎª¹«¹²·ÃÎÊ£¬¾ÍʧȥÁË¶ÔÆäÖµ½øÐÐÏÞÖÆµÄÄÜÁ¦¡£Í¬Ñù£¬Ò²²»ÄÜÔÚÆäÖµ±»Ð޸ĵÄʱºò×öһЩ²Ù×÷¡£Òò´Ë£¬ÕâЩҲ²»ÊÇḬ̈߳²È«µÄ¡£
ÒÔÉÏÔÔòͬÑù¶Ô¾²Ì¬º¯ÊýÊÊÓ㬵«¶Ô³£Á¿×Ö¶ÎÀýÍâ¡£
ҪעÒâÒ»µã£¬Èç¹ûÒ»¸ö¹«¹²µÄfinal×Ö¶ÎÖ¸ÏòµÄÊǿɸıäµÄ¶ÔÏó£¬ÄÇô¾Í»áÓÐDZÔڵݲȫ©¶´¡£
ÈçÏ£º
public static final Thing[] VALUES= {...};
ÓÐÁ½ÖÖ½â¾ö·½Ê½£º
Ò»ÖÖÊÇʹÓÃunmodifiableList,
private static final Thing[] PRIVATE_VALUES = { ... };
public static final List<Thing> VALUES =
Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));
ÁíÒ»ÖÐÊÇÓÃclone
private static final Thing[] PRIVATE_VALUES = { ... };
public static final Thing[] values() {
return PRIVATE_VALUES.clone();
}
±¾ÎÄÀ´×ÔCSDN²©¿Í£¬×ªÔØÇë±êÃ÷³ö´¦£ºhttp://blog.csdn.net/mutsinghua/archive/2010/02/05/5290877.aspx
Ïà¹ØÎĵµ£º
ÒÔÏÂÖ»ÊǸöÈËÀí½â
½ñÌìѧϰspringÖеÄÊôÐÔ×¢È룬ÔÚ½²ÔÀíµÄʱºò£¬Ìáµ½ÁËjavaÖеÄÄÚÄÚÊ¡»úÖÆ£¬ÔÚÒÔǰֻÊÇÁ˽âһϷ´Éä»úÖÆ¡£
·´Éä»úÖÆÊÇjavaÖеĶ¯Ì¬ÐÔÄÜ£¬¿ÉÒÔÒÔÀàÃûµÃµ½Àà¶ÔÏóµÄ¼¼Êõ£¬ÊµÏÖ¶¯Ì¬Éú³É¶ÔÏó¼¼Êõ£¬¿ÉÒÔÒÔ¶ÔÏóµÃµ½´Ë¶ÔÏóµÄÀàÐÅÏ¢£¨°üÀ¨ÊôÐÔ£¬·½·¨£©£¬ÊµÏִ˼¼ÊõµÄÊÇjavaÖеÄClass¶ÔÏ󣬴˶ÔÏóÊÇÃè ......
ΪÁ˽øÐзÇ×èÈûµÄsocketͨÐÅ£¬java nioÌṩChannel¸ÅÄîµÄʵÏÖ¡£Channel¸ÅÄîÒÔÇø±ðÓÚ´«Í³µÄ»ùÓÚÁ÷¸ÅÄîµÄIO¡£ÊÂʵÉÏChannel¸ÅÄîµÄIO¼È°üÀ¨·Ç×èÈûʽµÄIOÒ²°üÀ¨×èÈûʽIO¡£ÒªChannelÍê³É·Ç×èÈûʽIOÐèҪʵÏÖSelectableChannel½Ó¿Ú£¬ÓëSelector¹ØÁªÊ¹Óá£SocketChannel¾ÍÊÇÕâÑùÒ»¸öSelectableChannel¡£
ÓÉÓÚ£¬selector»úÖÆ±¾ÉíÉ ......
¼òµ¥µÄ¾Ñé×ܽá
ϵͳ»·¾³
OS—UnixϵµÄSolaris£¨¥½¥é¥ê¥¹£©
Langrage—java1.3
Framework—interstageV5£¨¸»Ê¿Í¨µÄ£©http://software.fujitsu.com/jp/manual/b293c34h0.html
DB—Oracle10g
¿ª·¢¹¤¾ß
IDE eclipse2.1 ×¢£º¹Å¶
tera term UnixϵͳµÄlogin tool
Framework interstageV5ÏÖÔ ......
CloneÕâ¸ö·½·¨ºÜ¼¦Àߣ¬ÔÒòÊÇÒòΪËüÊÇÊܱ£»¤µÄ(protected)£¬Æä¶þCloneÕâ¸ö·½·¨ÊÇ¿ÉÑ¡µÄ£¬¼´ÓпÉÄÜÀàûÓÐÌṩÕâ¸ö·½·¨¡£
cloneûÓе÷Óù¹Ô캯Êý£¬¶øÇÒÈç¹û¸¸ÀàûÓÐʵÏÖcloneµÄ»°£¬×ÓÀàÓÀÔ¶Ò²²»¿ÉÄÜÕýȷʵÏÖclone.
×ÜÖ®£¬cloneÊǸöºÜÍ·Í´µÄº¯Êý£¬Èç¹ûÒªÕýȷʵÏÖ£¬±ØÐ뿼Âǵ½É±´µÄÇé¿ö£¬·ñÔò±»¿Ë¡³öÀ´µÄ¶ÔÏó¾Í²»ÊǶÀÁ¢µÄ ......