¡¶Effective Java¡·: ¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
Àà¿ÉÒÔΪËüµÄ¿Í»§ÌṩһЩ¾²Ì¬¹¤³§·½·¨£¬À´Ìæ´ú¹¹Ô캯Êý£¬»òÕßͬʱҲÌṩһЩ¹¹Ô캯Êý¡£
¾²Ì¬¹¤³§·½·¨µÄÒ»¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯ÊýÏà±È£¬¾²Ì¬¹¤³§·½·¨¾ßÓÐÃû×Ö£¬Ëü¿ÉÒÔʹµÃ´úÂë¸üÈÝÒ×ÔĶÁ¡£Èç¹ûÒ»¸öÀà¿´ÆðÀ´ÐèÒª¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒËüÃǵÄÔÐÍÌØÕ÷Ïàͬ£¬ÄÇôÄãÓ¦¸Ã¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨À´´úÌæÆäÖÐÒ»¸ö»ò¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒÉ÷ÖØÑ¡ÔñËüÃǵÄÃû×ÖÒÔ±ãÃ÷ÏԵرêʾ³öËüÃǵIJ»Í¬¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇÿ´Î±»µ÷ÓõÄʱºò£¬²»ÒªÇó·ÇµÃ´´½¨Ò»¸öеĶÔÏó¡£¾²Ì¬¹¤³§·½·¨¿ÉÒÔÎªÖØ¸´µÄµ÷Ó÷µ»ØÍ¬Ò»¸ö¶ÔÏó¡£ÕâÑù×öÓÐÁ½¸öÀíÓÉ¡£µÚÒ»£¬ËüʹµÃÒ»¸öÀà¿ÉÒÔ±£Ö¤ÊÇÒ»¸ösingleton¡£µÚ¶þ£¬ËüʹµÃ·Ç¿É±äÀà¿ÉÒÔ±£Ö¤“²»»áÓÐÁ½¸öÏàµÈµÄʵÀý´æÔÚ”¡£
¾²Ì¬¹¤³§·½·¨µÄµÚÈý¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇ¿ÉÒÔ·µ»ØÒ»¸öÔ·µ»ØÀàÐ͵Ä×ÓÀàÐ͵ĶÔÏó¡£ÕâÖÖÁé»îÐÔµÄÒ»¸öÓ¦ÓÃÊÇ£¬Ò»¸öAPI¿ÉÒÔ·µ»ØÒ»¸ö¶ÔÏó£¬Í¬Ê±ÓÖ²»Ê¹¸Ã¶ÔÏóµÄÀà³ÉΪ¹«Óеģ¨ÄäÃûÀà»ò˽ÓÐÀࣩ¡£ÒÔÕâÖÖ·½Ê½°Ñ¾ßÌåµÄʵÏÖÀàÒþ²ØÆðÀ´£¬¿ÉÒԵõ½Ò»¸ö·Ç³£¼ò½àµÄAPI¡£ÕâÏî¼¼Êõ·Ç³£ÊʺϻùÓڽӿڵĿò¼Ü½á¹¹£¬ÒòΪÔÚÕâÑùµÄ¿ò¼Ü½á¹¹ÖУ¬½Ó¿Ú³ÉΪ¾²Ì¬¹¤³§·½·¨µÄ×ÔÈ»·µ»ØÀàÐÍ¡£
¾²Ì¬¹¤³§·½·¨µÄÖ÷ҪȱµãÊÇ£¬ÀàÈç¹û²»º¬Óй«ÓеĻòÕßÊܱ£»¤µÄ¹¹Ô캯Êý£¬¾Í²»Äܱ»×ÓÀ໯¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öȱµãÊÇ£¬ËüÃÇÓëÆäËûµÄ¾²Ì¬·½·¨Ã»ÓÐÈκÎÇø±ð£¬ÔÚAPIÎĵµÖУ¬ËûÃDz»»áÏñ¹¹Ô캯ÊýÄÇÑù±»Ã÷È·±êʾ³öÀ´¡£Èç¹û×ñѱê×¼µÄÃüÃûϰ¹ß£¬¾Í¿ÉÒÔ½«Õâ¸öȱµã¼õСµ½×îÉÙ¡£ÕâЩÃüÃûϰ¹ßÈÔÔÚÑÝ»¯ÖУ¬µ«ÊǾ²Ì¬¹¤³§·½·¨µÄÁ½¸öÃû×ÖÒѾ±äµÄºÜÁ÷ÐÐÁË£º
¡ï valueOf ²»Ì«ÑϸñµÄ½²£¬¸Ã·½·¨·µ»ØµÄʵÀýÓëËüµÄ²ÎÊý¾ßÓÐÏàͬµÄÖµ¡£
¡ï getInstance ¶ÔÓÚsingletonµÄÇéÐΣ¬Õâ¸ö·½·¨·µ»ØÎ©Ò»µÄʵÀý¡£
×ܵÄÀ´Ëµ£¬¾²Ì¬¹¤³§·½·¨ºÍ¹«ÓеĹ¹Ô캯Êý¶¼ÓÐËüÃǸ÷×ÔµÄÓÃ;£¬ÎÒÃÇÐèÒªÀí½âËüÃǸ÷×Եij¤´¦¡£Òª±ÜÃâÒ»ÉÏÀ´¾ÍÌṩ¹¹Ô캯Êý£¬¶ø²»¿¼ÂǾ²Ì¬¹¤³§£¬ÒòΪ¾²Ì¬¹¤³§Í¨³£¸üÊʺϡ£Èç¹ûÄãÕýÔÚȨºâÕâÁ½ÖÖÑ¡Ôñ£¬ÓÖûÓÐÆäËûÒòËØÇ¿ÁÒµÄÓ°ÏìÄãµÄÑ¡Ôñ£¬ÄÇôÄã×îºÃ»¹ÊǼòµ¥µØÊ¹Óù¹Ô캯Êý£¬±Ï¾¹ËüÊÇÓïÑÔÌṩµÄ¹æ·¶¡£
Ïà¹ØÎĵµ£º
1.·½·¨ÖØÔØ£ºÊÇÖ¸ÔÚÒ»¸öÀàÖÐÓжà¸ö·½·¨µÄÃû×ÖÏàͬ£¬µ«ÕâЩ·½·¨µÄ²ÎÊý±ØÐ벻ͬ£¬¼´ÒªÃ´ÊDzÎÊýµÄ¸öÊý²»Í¬£¬ÒªÃ´ÊDzÎÊýµÄÀàÐͲ»Í¬
×¢Ò⣺ÔÚ·½·¨ÖØÔØÖУ¬·½·¨µÄ·µ»ØÀàÐͺͲÎÊýµÄÃû×Ö²»²ÎÓë±È½Ï
2.·½·¨ÖвÎÊýµÄ´«Öµ£ ......
ÔÚÎÒÃÇд³ÌÐòµÄʱºò,ÓÐʱ»áÒªÇó±£´æÒ»Ð©Êý¾Ý,±ÈÈçÓû§Ãû»òÕß±ðµÄ,µ«ÊÇÕâÑùÊý¾ÝÓÖ²»ÊDZ£´æÔÚ³ÌÐòͬһĿ¼ÏÂ,ÕâÑù×öÌ«Ã÷ÏÔÁË,Ò²²»Ì«°²È«,ÄÇÔõô°ìÄØ?Õâ¸öʱºò,Èç¹ûÄܰÑÊý¾Ý±£´æµ½×¢²á±íÀïÃæÈ¥,ÄǸöàºÃ,Ò»À´Òþ±Î,¶þÀ´·½±ã,²»ÖÁÓÚÔÚ³ÌÐòĿ¼ÏÂÉú³ÉÒ»´óƬÎļþ.
ÔÚJAVAÀïÃæ,¿ÉÒÔÀûÓÃjava.util.prefs.PreferencesÀ´¶Ô×¢²á±í½øÐ ......
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ר¼ÒÂð£¿ÊÇ·ñ¿Ï¶¨×Ô¼ºÒÑ¾È«ÃæÕÆÎÕÁËJavaµÄÒì³£´¦Àí»úÖÆ£¿ÔÚÏÂÃæÕâ¶Î´úÂëÖУ¬ÄãÄܹ»Ñ¸ËÙÕÒ³öÒì³£´¦ÀíµÄÁù¸öÎÊÌâÂð£¿
1 OutputStreamWriter out = ...
2 java.sql.Connection conn = ...
3 try { // ¢É
4 ¡¡Statement stat = conn.createStatement();
5 ¡¡ResultS ......
Java ½Å±¾ API ¸ÅÊö
½Å±¾ÒýÇæ
½Å±¾ÒýÇæ¾ÍÊÇÖ¸½Å±¾µÄÔËÐл·¾³£¬ËüÄÜÄܹ»°ÑÔËÐÐÆäÉϵĽâÊÍÐÔÓïÑÔת»»Îª¸üµ×²ãµÄ»ã±àÓïÑÔ£¬Ã»Óнű¾ÒýÇæ£¬½Å±¾¾ÍÎÞ·¨±»ÔËÐС£
Java SE 6 ÒýÈëÁË¶Ô Java Specification Request£¨JSR£©223 µÄÖ§³Ö£¬JSR 223 Ö¼ÔÚ¶¨ÒåÒ»¸öͳһµÄ¹æ·¶£¬Ê¹µÃ Java Ó¦ÓóÌÐò¿ÉÒÔͨ¹ýÒ»Ì׹̶¨µÄ½Ó¿ÚÓë¸÷Öֽű ......