¡¶Effective Java¡·: ¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨´úÌæ¹¹Ô캯Êý
Àà¿ÉÒÔΪËüµÄ¿Í»§ÌṩһЩ¾²Ì¬¹¤³§·½·¨£¬À´Ìæ´ú¹¹Ô캯Êý£¬»òÕßͬʱҲÌṩһЩ¹¹Ô캯Êý¡£
¾²Ì¬¹¤³§·½·¨µÄÒ»¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯ÊýÏà±È£¬¾²Ì¬¹¤³§·½·¨¾ßÓÐÃû×Ö£¬Ëü¿ÉÒÔʹµÃ´úÂë¸üÈÝÒ×ÔĶÁ¡£Èç¹ûÒ»¸öÀà¿´ÆðÀ´ÐèÒª¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒËüÃǵÄÔÐÍÌØÕ÷Ïàͬ£¬ÄÇôÄãÓ¦¸Ã¿¼ÂÇÓþ²Ì¬¹¤³§·½·¨À´´úÌæÆäÖÐÒ»¸ö»ò¶à¸ö¹¹Ô캯Êý£¬²¢ÇÒÉ÷ÖØÑ¡ÔñËüÃǵÄÃû×ÖÒÔ±ãÃ÷ÏԵرêʾ³öËüÃǵIJ»Í¬¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇÿ´Î±»µ÷ÓõÄʱºò£¬²»ÒªÇó·ÇµÃ´´½¨Ò»¸öеĶÔÏó¡£¾²Ì¬¹¤³§·½·¨¿ÉÒÔÎªÖØ¸´µÄµ÷Ó÷µ»ØÍ¬Ò»¸ö¶ÔÏó¡£ÕâÑù×öÓÐÁ½¸öÀíÓÉ¡£µÚÒ»£¬ËüʹµÃÒ»¸öÀà¿ÉÒÔ±£Ö¤ÊÇÒ»¸ösingleton¡£µÚ¶þ£¬ËüʹµÃ·Ç¿É±äÀà¿ÉÒÔ±£Ö¤“²»»áÓÐÁ½¸öÏàµÈµÄʵÀý´æÔÚ”¡£
¾²Ì¬¹¤³§·½·¨µÄµÚÈý¸öºÃ´¦ÊÇ£¬Óë¹¹Ô캯Êý²»Í¬£¬ËüÃÇ¿ÉÒÔ·µ»ØÒ»¸öÔ·µ»ØÀàÐ͵Ä×ÓÀàÐ͵ĶÔÏó¡£ÕâÖÖÁé»îÐÔµÄÒ»¸öÓ¦ÓÃÊÇ£¬Ò»¸öAPI¿ÉÒÔ·µ»ØÒ»¸ö¶ÔÏó£¬Í¬Ê±ÓÖ²»Ê¹¸Ã¶ÔÏóµÄÀà³ÉΪ¹«Óеģ¨ÄäÃûÀà»ò˽ÓÐÀࣩ¡£ÒÔÕâÖÖ·½Ê½°Ñ¾ßÌåµÄʵÏÖÀàÒþ²ØÆðÀ´£¬¿ÉÒԵõ½Ò»¸ö·Ç³£¼ò½àµÄAPI¡£ÕâÏî¼¼Êõ·Ç³£ÊʺϻùÓڽӿڵĿò¼Ü½á¹¹£¬ÒòΪÔÚÕâÑùµÄ¿ò¼Ü½á¹¹ÖУ¬½Ó¿Ú³ÉΪ¾²Ì¬¹¤³§·½·¨µÄ×ÔÈ»·µ»ØÀàÐÍ¡£
¾²Ì¬¹¤³§·½·¨µÄÖ÷ҪȱµãÊÇ£¬ÀàÈç¹û²»º¬Óй«ÓеĻòÕßÊܱ£»¤µÄ¹¹Ô캯Êý£¬¾Í²»Äܱ»×ÓÀ໯¡£
¾²Ì¬¹¤³§·½·¨µÄµÚ¶þ¸öȱµãÊÇ£¬ËüÃÇÓëÆäËûµÄ¾²Ì¬·½·¨Ã»ÓÐÈκÎÇø±ð£¬ÔÚAPIÎĵµÖУ¬ËûÃDz»»áÏñ¹¹Ô캯ÊýÄÇÑù±»Ã÷È·±êʾ³öÀ´¡£Èç¹û×ñѱê×¼µÄÃüÃûϰ¹ß£¬¾Í¿ÉÒÔ½«Õâ¸öȱµã¼õСµ½×îÉÙ¡£ÕâЩÃüÃûϰ¹ßÈÔÔÚÑÝ»¯ÖУ¬µ«ÊǾ²Ì¬¹¤³§·½·¨µÄÁ½¸öÃû×ÖÒѾ±äµÄºÜÁ÷ÐÐÁË£º
¡ï valueOf ²»Ì«ÑϸñµÄ½²£¬¸Ã·½·¨·µ»ØµÄʵÀýÓëËüµÄ²ÎÊý¾ßÓÐÏàͬµÄÖµ¡£
¡ï getInstance ¶ÔÓÚsingletonµÄÇéÐΣ¬Õâ¸ö·½·¨·µ»ØÎ©Ò»µÄʵÀý¡£
×ܵÄÀ´Ëµ£¬¾²Ì¬¹¤³§·½·¨ºÍ¹«ÓеĹ¹Ô캯Êý¶¼ÓÐËüÃǸ÷×ÔµÄÓÃ;£¬ÎÒÃÇÐèÒªÀí½âËüÃǸ÷×Եij¤´¦¡£Òª±ÜÃâÒ»ÉÏÀ´¾ÍÌṩ¹¹Ô캯Êý£¬¶ø²»¿¼ÂǾ²Ì¬¹¤³§£¬ÒòΪ¾²Ì¬¹¤³§Í¨³£¸üÊʺϡ£Èç¹ûÄãÕýÔÚȨºâÕâÁ½ÖÖÑ¡Ôñ£¬ÓÖûÓÐÆäËûÒòËØÇ¿ÁÒµÄÓ°ÏìÄãµÄÑ¡Ôñ£¬ÄÇôÄã×îºÃ»¹ÊǼòµ¥µØÊ¹Óù¹Ô캯Êý£¬±Ï¾¹ËüÊÇÓïÑÔÌṩµÄ¹æ·¶¡£
Ïà¹ØÎĵµ£º
ÊäÈëÍøÒ³ÎļþÃû£¬ºÍ×ÊÔ´ÁбíÎļþÃû
Êä³ö×ÊÔ´ÁбíÎļþ¹©Ñ¸À×ÏÂÔØ¡£
ÊÊÓÃÓÚÅúÁ¿ÏÂÔØÍ¼Æ¬¡£
ÓÉÁ½¸öÎļþ×é³É¡£
ûÓÐÌá¹©ÍøÒ³ÏÂÔØ¹¦ÄÜ£¬ÒòΪÎÒûÓÐʱ¼äд£¬Ïà¹ØµÄ´úÂëÒÔºóÔÙÌù¡£
1
//
AnalizeIMG.java
2
3
//
Ö÷³ÌÐò
4
5
import
java.io.BufferedReader;
6
import
......
ÔÚÎÒÃÇд³ÌÐòµÄʱºò,ÓÐʱ»áÒªÇó±£´æÒ»Ð©Êý¾Ý,±ÈÈçÓû§Ãû»òÕß±ðµÄ,µ«ÊÇÕâÑùÊý¾ÝÓÖ²»ÊDZ£´æÔÚ³ÌÐòͬһĿ¼ÏÂ,ÕâÑù×öÌ«Ã÷ÏÔÁË,Ò²²»Ì«°²È«,ÄÇÔõô°ìÄØ?Õâ¸öʱºò,Èç¹ûÄܰÑÊý¾Ý±£´æµ½×¢²á±íÀïÃæÈ¥,ÄǸöàºÃ,Ò»À´Òþ±Î,¶þÀ´·½±ã,²»ÖÁÓÚÔÚ³ÌÐòĿ¼ÏÂÉú³ÉÒ»´óƬÎļþ.
ÔÚJAVAÀïÃæ,¿ÉÒÔÀûÓÃjava.util.prefs.PreferencesÀ´¶Ô×¢²á±í½øÐ ......
×òÌì¿´µ½ÁôÑÔ,ÓÚÊǽñÌìÓÖ°ÑһЩ¹¦Äܼӽø½øÈ¥ÁË
±ÈÈç,
1,³ÌÐò¿ÉÒÔ×îС»¯µ½ÏµÍ³ÍÐÅÌÇø
2,³ÌÐò¿ÉÒÔÅúÁ¿±£´æËùÓнعýµÄͼƬ
3,ÐÞÕýÁËÒÔǰµÄÒ»¸öСBUG,ÄǾÍÊÇÊäÈë±£´æÍ¼Æ¬µÄÎļþÃûʱ,Èç¹ûûÓÐÊäÈëºó׺Ãû,½«±£´æÕý³£,Èç¹ûÊäÈëÁ˺ó׺Ãû,½«»á±£´æ¸ñʽ³ö´í
´ò°üÎļþÇëµã»÷ÕâÀïÏÂÔØ,distÎļþ¼ÐÀïÃæµÄJARÎļþÊÇ¿ÉÒÔË«»÷Ö´ÐеÄ
¸Ð ......
¶¨ÒåÒ»¸önative ·½·¨£º
package ext;
import java.util.Hashtable;
public class TestJNI
{
static
{
System.loadLibrary("dllfile");
}
public TestJNI()
{
......
¼òÑÔÖ®,Èç¹û²»ÓõÚÈý·½ÌṩµÄ½Ó¿Ú
ÄÇ×îºÃµÄ½â¾ö·½°¸Ó¦¸ÃÊǵ±SESSION½¨Á¢Ê±sessionCreated(),ÔÚ·ÃÎÊ×ÜÊýºÍµ±Ç°ÔÚÏßÈËÊýÉÏ+1
µ±SESSIONÏú»ÙʱsessionDistroyed(),ÔÚÏßÈËÊý-1
ºËÐÄ·½·¨ÊÇÀûÓÃListener¼àÌýµÄ¸÷ÖÖ½Ó¿Ú
ÎÒ°Ñ´úÂë(Ö÷Òª²¿·Ö)ÌùÔÚÏÂÃæ
´Ë¶Î´úÂëÎÒÇ××ÔʹÓùý,ûÓÐÎÊÌâ
µ«ÒòΪ¼Ì³ÐÁ˽ӿÚ,ÓÐЩδʹÓõķ½·¨Ò²Òª² ......