¡¶Effective Java¡·: ¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
Àà¿ÉÒÔΪËüµÄ¿Í»§ÌṩһЩ¾²Ì¬¹¤³§·½·¨£¬À´Ìæ´ú¹¹Ô캯Êý£¬»òÕßͬʱҲÌṩһЩ¹¹Ô캯Êý¡£
¾²Ì¬¹¤³§·½·¨µÄÒ»¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯ÊýÏà±È£¬¾²Ì¬¹¤³§·½·¨¾ßÓÐÃû×Ö£¬Ëü¿ÉÒÔʹµÃ´úÂë¸üÈÝÒ×ÔĶÁ¡£Èç¹ûÒ»¸öÀà¿´ÆðÀ´ÐèÒª¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒËüÃǵÄÔÐÍÌØÕ÷Ïàͬ£¬ÄÇôÄãÓ¦¸Ã¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨À´´úÌæÆäÖÐÒ»¸ö»ò¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒÉ÷ÖØÑ¡ÔñËüÃǵÄÃû×ÖÒÔ±ãÃ÷ÏԵرêʾ³öËüÃǵIJ»Í¬¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇÿ´Î±»µ÷ÓõÄʱºò£¬²»ÒªÇó·ÇµÃ´´½¨Ò»¸öеĶÔÏó¡£¾²Ì¬¹¤³§·½·¨¿ÉÒÔÎªÖØ¸´µÄµ÷Ó÷µ»ØÍ¬Ò»¸ö¶ÔÏó¡£ÕâÑù×öÓÐÁ½¸öÀíÓÉ¡£µÚÒ»£¬ËüʹµÃÒ»¸öÀà¿ÉÒÔ±£Ö¤ÊÇÒ»¸ösingleton¡£µÚ¶þ£¬ËüʹµÃ·Ç¿É±äÀà¿ÉÒÔ±£Ö¤“²»»áÓÐÁ½¸öÏàµÈµÄʵÀý´æÔÚ”¡£
¾²Ì¬¹¤³§·½·¨µÄµÚÈý¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇ¿ÉÒÔ·µ»ØÒ»¸öÔ·µ»ØÀàÐ͵Ä×ÓÀàÐ͵ĶÔÏó¡£ÕâÖÖÁé»îÐÔµÄÒ»¸öÓ¦ÓÃÊÇ£¬Ò»¸öAPI¿ÉÒÔ·µ»ØÒ»¸ö¶ÔÏó£¬Í¬Ê±ÓÖ²»Ê¹¸Ã¶ÔÏóµÄÀà³ÉΪ¹«Óеģ¨ÄäÃûÀà»ò˽ÓÐÀࣩ¡£ÒÔÕâÖÖ·½Ê½°Ñ¾ßÌåµÄʵÏÖÀàÒþ²ØÆðÀ´£¬¿ÉÒԵõ½Ò»¸ö·Ç³£¼ò½àµÄAPI¡£ÕâÏî¼¼Êõ·Ç³£ÊʺϻùÓڽӿڵĿò¼Ü½á¹¹£¬ÒòΪÔÚÕâÑùµÄ¿ò¼Ü½á¹¹ÖУ¬½Ó¿Ú³ÉΪ¾²Ì¬¹¤³§·½·¨µÄ×ÔÈ»·µ»ØÀàÐÍ¡£
¾²Ì¬¹¤³§·½·¨µÄÖ÷ҪȱµãÊÇ£¬ÀàÈç¹û²»º¬Óй«ÓеĻòÕßÊܱ£»¤µÄ¹¹Ô캯Êý£¬¾Í²»Äܱ»×ÓÀ໯¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öȱµãÊÇ£¬ËüÃÇÓëÆäËûµÄ¾²Ì¬·½·¨Ã»ÓÐÈκÎÇø±ð£¬ÔÚAPIÎĵµÖУ¬ËûÃDz»»áÏñ¹¹Ô캯ÊýÄÇÑù±»Ã÷È·±êʾ³öÀ´¡£Èç¹û×ñѱê×¼µÄÃüÃûϰ¹ß£¬¾Í¿ÉÒÔ½«Õâ¸öȱµã¼õСµ½×îÉÙ¡£ÕâЩÃüÃûϰ¹ßÈÔÔÚÑÝ»¯ÖУ¬µ«ÊǾ²Ì¬¹¤³§·½·¨µÄÁ½¸öÃû×ÖÒѾ±äµÄºÜÁ÷ÐÐÁË£º
¡ï valueOf ²»Ì«ÑϸñµÄ½²£¬¸Ã·½·¨·µ»ØµÄʵÀýÓëËüµÄ²ÎÊý¾ßÓÐÏàͬµÄÖµ¡£
¡ï getInstance ¶ÔÓÚsingletonµÄÇéÐΣ¬Õâ¸ö·½·¨·µ»ØÎ©Ò»µÄʵÀý¡£
×ܵÄÀ´Ëµ£¬¾²Ì¬¹¤³§·½·¨ºÍ¹«ÓеĹ¹Ô캯Êý¶¼ÓÐËüÃǸ÷×ÔµÄÓÃ;£¬ÎÒÃÇÐèÒªÀí½âËüÃǸ÷×Եij¤´¦¡£Òª±ÜÃâÒ»ÉÏÀ´¾ÍÌṩ¹¹Ô캯Êý£¬¶ø²»¿¼ÂǾ²Ì¬¹¤³§£¬ÒòΪ¾²Ì¬¹¤³§Í¨³£¸üÊʺϡ£Èç¹ûÄãÕýÔÚȨºâÕâÁ½ÖÖÑ¡Ôñ£¬ÓÖûÓÐÆäËûÒòËØÇ¿ÁÒµÄÓ°ÏìÄãµÄÑ¡Ôñ£¬ÄÇôÄã×îºÃ»¹ÊǼòµ¥µØÊ¹Óù¹Ô캯Êý£¬±Ï¾¹ËüÊÇÓïÑÔÌṩµÄ¹æ·¶¡£
Ïà¹ØÎĵµ£º
ÔÚjavaÖÐ ¿ÉÒÔ½«Ä³¸ö¶ÔÏó¸³Öµ¸øÁíÒ»¸ö¶ÔÏó Ö»Òª¸ÃÁ½¸ö¶ÔÏóÊÇÊôÓÚͬһ¸öÀ༴¿É ´Ëʱ ÕâÁ½¸ö¶ÔÏóµÄËùÓгÉÔ±½«Ö¸Ïòͬһ¿éÄÚ´æ
eg£º
public class class1
{
&n ......
ÔÚÎÒÃÇд³ÌÐòµÄʱºò,ÓÐʱ»áÒªÇó±£´æÒ»Ð©Êý¾Ý,±ÈÈçÓû§Ãû»òÕß±ðµÄ,µ«ÊÇÕâÑùÊý¾ÝÓÖ²»ÊDZ£´æÔÚ³ÌÐòͬһĿ¼ÏÂ,ÕâÑù×öÌ«Ã÷ÏÔÁË,Ò²²»Ì«°²È«,ÄÇÔõô°ìÄØ?Õâ¸öʱºò,Èç¹ûÄܰÑÊý¾Ý±£´æµ½×¢²á±íÀïÃæÈ¥,ÄǸöàºÃ,Ò»À´Òþ±Î,¶þÀ´·½±ã,²»ÖÁÓÚÔÚ³ÌÐòĿ¼ÏÂÉú³ÉÒ»´óƬÎļþ.
ÔÚJAVAÀïÃæ,¿ÉÒÔÀûÓÃjava.util.prefs.PreferencesÀ´¶Ô×¢²á±í½øÐ ......
×òÌì¿´µ½ÁôÑÔ,ÓÚÊǽñÌìÓÖ°ÑһЩ¹¦Äܼӽø½øÈ¥ÁË
±ÈÈç,
1,³ÌÐò¿ÉÒÔ×îС»¯µ½ÏµÍ³ÍÐÅÌÇø
2,³ÌÐò¿ÉÒÔÅúÁ¿±£´æËùÓнعýµÄͼƬ
3,ÐÞÕýÁËÒÔǰµÄÒ»¸öСBUG,ÄǾÍÊÇÊäÈë±£´æÍ¼Æ¬µÄÎļþÃûʱ,Èç¹ûûÓÐÊäÈëºó׺Ãû,½«±£´æÕý³£,Èç¹ûÊäÈëÁ˺ó׺Ãû,½«»á±£´æ¸ñʽ³ö´í
´ò°üÎļþÇëµã»÷ÕâÀïÏÂÔØ,distÎļþ¼ÐÀïÃæµÄJARÎļþÊÇ¿ÉÒÔË«»÷Ö´ÐеÄ
¸Ð ......
1. ´´½¨Ị̈߳¨¼Ì³ÐThreadºÍʵÏÖrunnable½Ó¿Ú£© class SubThread {
private class InnerThread extends Thread {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
super.run();
}
}
public Thread getThread() {
return new InnerThread();
}
}
......
ÔÚ»ùÓÚ Java
ÓïÑԵıà³ÌÖУ¬ÎÒÃǾ³£Åöµ½ºº×ֵĴ¦Àí¼°ÏÔʾµÄÎÊÌâ¡£Ò»´ó¶Ñ¿´²»¶®µÄÂÒÂë¿Ï¶¨²»ÊÇÎÒÃÇÔ¸Òâ¿´µ½µÄÏÔʾЧ¹û£¬ÔõÑù²ÅÄܹ»ÈÃÄÇЩºº×ÖÕýÈ·ÏÔÊ¾ÄØ£¿JavaÓïÑÔ
ĬÈϵıàÂ뷽ʽÊÇUNICODE£¬¶øÎÒÃÇÖйúÈËͨ³£Ê¹ÓõÄÎļþºÍÊý¾Ý¿â¶¼ÊÇ»ùÓÚGB2312»òÕßBIG5µÈ·½Ê½±àÂëµÄ£¬ÔõÑù²ÅÄܹ»Ç¡µ±µØÑ¡Ôñºº×Ö±àÂ뷽ʽ
²¢ÕýÈ·µØ ......