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
Ïà¹ØÎĵµ£º
ÃæÊÔʱºò¾³£»áÅöµ½µÄÒ»¸öÎÊÌ⣬¸øÄãÁ½¸ö¼Ì³Ð¹ØÏµµÄjavaÀàµÄ´úÂ룬ÕâÁ½¸öÀàÖÐÓй¹Ôì·½·¨ºÍһЩ±äÁ¿£¬È»ºó»¹ÓÐһЩ·½·¨£¬·½·¨Àïͨ³£Óн«±äÁ¿Êä³öµÄÓï¾ä¡£ÕâÀàÎÊÌâÖ÷Òª¿¼²ìÎÒÃǶԸ¸Àà×ÓÀà³õʼ»¯Ë³ÐòµÄÁ˽âÇé¿ö¡£
ÕâÀïÎÒÃÇÖ÷ÒªÌÖÂÛϾ²Ì¬³õʼ»¯¿éÕâÖÖÇé¿ö¡£
......
ΪÁ˽øÐзÇ×èÈûµÄ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ÏÖÔ ......
OpenJWeb Java¼¼ÊõÃÅ»§ÍøµØÖ·Îªhttp://www.openjweb.com:8088/crm ,´ËÍøÕ¾ÓÚ2010Äê2ÔÂ16ÈÕÕýʽÆôÓá£
OpenJWeb Java¼¼ÊõÃÅ»§ÍøÖ÷ÒªÌṩJava¼Ü¹¹Ñ§Ï°¡¢Java¿ªÔ´¿ò¼Ü¼¼Êõ½»Á÷¡¢OpenJWeb¼¼Êõ×ÊÁÏÏÂÔØ¡¢Ãâ·Ñ»áÔ±×¢²á¡¢openjweb.comÃâ·ÑÓÊÏä·þÎñ¡¢ÓʼþȺ·¢¡¢¿Í»§µµ°¸¹ÜÀí¡¢ÄÚÈݹÜÀíϵͳµÈ¹¦ÄÜ¡£
OpenJWeb Java¼¼ÊõÃÅ»§Íøµ ......
ÓëÆäËüÀ಻ͬ£¬compareTo·½·¨²¢²»ÊÇOjbectÖеķ½·¨£¬ËüÊÇComparable½Ó¿ÚÖÐΨһµÄ·½·¨¡£Í¨¹ýʵÏÖComparable½Ó¿Ú£¬¿ÉÒÔËüÄܹ»×ÔÈ»ÅÅÐò¡£
ÅÅÐò£¬Arrays.sort(a); ¾ÍOKÁË¡£
ÊéÉÏÌáÁËÒ»¸öÇÉÃîµÄ·½·¨£¬ÓÃÀ´Ïû³ýÖØ¸´µÄ×Ö·û´®¡£ËüÓÃÁËÒ»¸öSet¼¯ºÏÀ´¹ýÂËÖØ¸´µÄ×ֶΡ£
public class WordList {
&n ......