JAVAÖеÄSingletonģʽ
µ¥Àýģʽ£¬¹ËÃû˼Ò壬ֻÄÜÓÐÒ»¸öʵÀý¡£
Ò».´Ó¶àḬ̈߳²È«ËµÆð£¬ÈçÏÂͼ´úÂ룬´ËÎÊÌâ¿ÉÒÔÓÃsynchronized¹Ø¼ü×ÖÀ´½â¾ö¡£¸Ã·½·¨È±µã£ºÃ¿Ò»¸öÏß³ÌÔÚ»ñȡʵÀý¶ÔÏó֮ǰ¶¼ÒªÔÚsynchronizedÉÏͬ²½µÄ¶ÔÏóÉϽøÐеȴý£¬Òò´ËЧÂʲ»¸ß¡£
¶þ.Double Check·½·¨£¬¼ûÏÂͼ´úÂë¡£Double CheckµÄ³õÖÔÊÇÖ»Óе±instanceΪNULLʱִÐеÄÏ̲߳ÅÐèÒªÔÚsynchronizedͬ²½µÄ¶ÔÏóÉϵȴý£¬Õâ±ÜÃâÁ˓һ”·½·¨ÖеÄÿ¸öÏß³ÌÔÚ»ñµÃʵÀý¶ÔÏó֮ǰ¾ùÒªÔÚsynchronizedͬ²½µÄ¶ÔÏóÉϽøÐеȴýµÄ±×¶Ë¡£µ«ÊÇÕâÒ»ÉèÏëÔÚJAVAÖÐÈ´²»ÊÊÓ¦¡£ÔÒò£ºJAVAÄÚ´æÄ£ÐͲ¢²»±£Ö¤Ò»¸ö¶ÔÏóµÄÒýÓÃÖ»ÓÐÔÚËü¹¹ÔìÍêÖ®ºó²Å±»¸³ÓèÒ»¸öʵÀý¡£ÀýÈ磺AÏß³ÌÖ´Ðе½ÁËinstance=new SingletonClass();"instance=new SingletonClass()"ÕâÒ»¹ý³ÌµÄÖ´Ðв½Öè¿ÉÄÜÊÇÏÂÊöÇéÐΣºµÚÒ»²½£¬JVM·ÖÅäÄڴ棻µÚ¶þ²¿£¬instanceÖ¸Ïò·ÖÅäµÄÄڴ棻µÚÈý²½£¬µ÷Óù¹Ôì·½·¨¡£¼ÙÉè´ËʱAÏß³ÌÖ´Ðе½Á˵ڶþ²½£¬¶øÍ¬Ê±BÏ߳̿ªÊ¼Ö´ÐУ¬´ËʱBÏ̼߳ì²âµ½µÄinstance²»Îªnull£¬µ«ÒòΪAÏß³ÌÖл¹Î´Ö´ÐеÚÈý²½¼´»¹Ã»µ÷Óù¹Ô캯Êý£¬ËùÒÔBÏß³ÌÖзµ»ØµÄinstanceÊDz»ÕýÈ·µÄ¡£µ±È»£¬ÕâÖÖ´íÎóʱ¿ÉÄÜ·¢ÉúµÄ£¬¾¡¹ÜÏÂÃæ´úÂëÖеÄÖ´Ðеõ½µÄ½á¹ûÊÇÕýÈ·µÄ¡£
Èý.ʹÓþ²Ì¬ÄÚ²¿Àà¡£ºÃ´¦£º1.¿ÉÒÔʵÏÖÑÓʱʵÀý»¯¡£¼´Ö»Óе±Ààµ÷ÓÃgetInstance()·½·¨Ê±²Å»á¶Ôinstance½øÐÐʵÀý»¯£¬¶ø“Ò»”“¶þ”Á½ÖÖ·½·¨Öж¼ÊÇÔÚÀàµÚÒ»´Î¼ÓÔØÊ±±ã¶Ôinstance½øÐÐÁËʵÀý»¯¡£2.½â¾öÁ˓һ”·½·¨ÖУ¬Ã¿¸öÏß³ÌÔÚ»ñµÃʵÀý¶ÔÏó֮ǰ¶¼ÒªÔÚsynchronizedͬ²½µÄ¶ÔÏóÉϽøÐеȴýµÄȱÏÝ¡£
ÎÊÌ⣺ÕâÊÇÍøÂçÉÏ¿´µ½µÄ´ò¼ÜÆÕ±éÈÏͬµÄÒ»ÖÖ½â¾öjavaÖÐSingletonģʽµÄ·½·¨£¬µ«ÎªÊ²Ã´ÏÂÃæÕâÖÖ·½·¨²»´æÔÚDouble Check·½·¨Öеı׶ËÄØ£¿¼´ÏÂÃæ·½·¨ÖÐÊÇͨ¹ýʲô½â¾öÁËDouble CheckÖеÄÎÊÌâÄØ£¿
Ïà¹ØÎĵµ£º
JNIÊÇJava Native InterfaceµÄËõд£¬Í¨¹ýʹÓÃnative·½·¨£¬Java¿ÉÒÔµ÷Óñ¾µØC/C++×Ó³ÌÐò¡£ÉùÃ÷Ò»¸ö±¾µØ×Ó³ÌÐòµÄ·½·¨ÊÇ£ºÔÚ·½·¨ÃûǰÌí¼ÓnativeÐÞÊΣ¬Èç
public native void myfun();
µ÷ÓøÃ×Ó³ÌÐòµÄ·½·¨Îª£º
static{
System.loadLibrary("myfun");
}
ÔÚWindowsÉÏ£¬ÉÏÃæµÄmyfun¼´Ö¸°üº¬ÓÃC/C++дµÄmy ......
Ò»°ãµÄÊÊÓÃÓÚS40µÄJAVAÈí¼þ¶¼¿ÉÒÔ×°ÔÚŵ»ùÑÇ3110cÉÏ,°üÀ¨ÓÎÏ·,µç×ÓÊé,Ó¦ÓÃÈí¼þ ʲôÊÇJAVAÈí¼þÄØ£¿
JavaÊÇÓÉSun΢ϵͳ¹«Ë¾Ëù·¢Õ¹³öÀ´µÄ³ÌÐòÓïÑÔ£¬Ëü±¾ÉíÊÇÒ»ÖÖ¶ÔÏóµ¼Ïò£¨Object-Oriented£©µÄ³ÌÐòÓïÑÔ¡£JAVAĿǰÔÚÊÖ»úÉÏÓ¦ÓÃ×î¶àµÄ¾ÍÊÇJAVAÓÎÏ·¡£
JavaÒ²ºÅ³ÆÊÇÄÜ¿çÆ½Ì¨Ê¹ÓõÄÓïÑÔ£¬ÕâÖ÷ÒªÊÇÒòΪJava±¾Éí±»±àÒëÖ®ºó£¬²¢² ......
finalÀࣺΪ·ÀÖ¹ËûÈË´ÓÄãµÄÀàÉÏÅÉÉúÐÂÀ࣬´ËÀàÊDz»¿ÉÀ©Õ¹µÄ¡£
¡¡¡¡¶¯Ì¬µ÷ÓñȾ²Ì¬µ÷Óû¨·ÑµÄʱ¼äÒª³¤¡£
¡¡¡¡³éÏóÀࣺ¹æ¶¨Ò»¸ö»ò¶à¸ö³éÏó·½·¨µÄÀà±¾Éí±ØÐ붨ÒåΪabstract¡£
¡¡¡¡Àý£º public abstract string getDescripition
¡¡¡¡JavaÖеÄÿһ¸öÀà¶¼ÊÇ´ÓObjectÀàÀ©Õ¹¶øÀ´µÄ¡£
¡¡¡¡objectÀàÖеÄequalºÍtoString·½· ......
Ò»¡¢Array £¬ Arrays
JavaËùÓГ´æ´¢¼°Ëæ»ú·ÃÎÊÒ»Á¬´®¶ÔÏó”µÄ×ö·¨£¬arrayÊÇ×îÓÐЧÂʵÄÒ»ÖÖ¡£
1¡¢
ЧÂʸߣ¬µ«ÈÝÁ¿¹Ì¶¨ÇÒÎÞ·¨¶¯Ì¬¸Ä±ä¡£
array»¹ÓÐÒ»¸öȱµãÊÇ£¬ÎÞ·¨ÅÐ¶ÏÆäÖÐʵ¼Ê´æÓжàÉÙÔªËØ£¬lengthÖ»ÊǸæËßÎÒÃÇarrayµÄÈÝÁ¿¡£
2¡¢JavaÖÐÓÐÒ»¸öArraysÀ࣬רÃÅÓÃÀ´²Ù×÷array¡£
a ......