Java¶àÏ̱߳à³Ì»·¾³Öе¥ÀýģʽµÄʵÏÖ
Abstract
ÔÚ¿ª·¢ÖУ¬Èç¹ûij¸öʵÀýµÄ´´½¨ÐèÒªÏûºÄºÜ¶àϵͳ×ÊÔ´£¬ÄÇôÎÒÃÇͨ³£»áʹÓöèÐÔ¼ÓÔØ»úÖÆ£¬Ò²¾ÍÊÇ˵ֻÓе±Ê¹Óõ½Õâ¸öʵÀýµÄʱºò²Å»á´´½¨Õâ¸öʵÀý£¬Õâ¸öºÃ´¦ÔÚ
µ¥ÀýģʽÖеõ½Á˹㷺ӦÓá£Õâ¸ö»úÖÆÔÚsingle-threaded»·¾³ÏµÄʵÏַdz£¼òµ¥£¬È»¶øÔÚmulti-threaded»·¾³ÏÂÈ´´æÔÚÒþ»¼¡£±¾ÎÄ
ÖØµã½éÉܶèÐÔ¼ÓÔØ»úÖÆÒÔ¼°ÆäÔÚ¶àÏ̻߳·¾³ÏµÄʹÓ÷½·¨¡££¨×÷Õßnumberzero£¬²Î¿¼IBMÎÄÕ¡¶Double-checked locking
and the Singleton pattern¡·£¬»¶Ó×ªÔØÓëÌÖÂÛ£©
1 µ¥ÀýģʽµÄ¶èÐÔ¼ÓÔØ
ͨ³£µ±ÎÒÃÇÉè¼ÆÒ»¸öµ¥ÀýÀàµÄʱºò£¬»áÔÚÀàµÄÄÚ²¿¹¹ÔìÕâ¸öÀࣨͨ¹ý¹¹Ô캯Êý£¬»òÕßÔÚ¶¨Òå´¦Ö±½Ó´´½¨£©£¬²¢¶ÔÍâÌṩһ¸östatic getInstance·½·¨Ìṩ»ñÈ¡¸Ãµ¥Àý¶ÔÏóµÄ;¾¶¡£ÀýÈ磺
Java´úÂë < type="application/x-shockwave-flash" width="14" height="15" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" src="http://xupo.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=public%20class%20Singleton%20%20%20%20%20%20%0A%7B%20%20%20%20%20%20%0A%20%20%20%20private%20static%20Singleton%20instance%20%3D%20new%20Singleton()%3B%20%20%20%20%20%20%0A%20%20%20%20private%20Singleton()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%E2%80%A6%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%20%20%20%20public%20static%20Singleton%20getInstance()%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20instance%3B%20%20%20%20%20%20%20%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%20%20%20%20%20%0A" quality="high" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="15" width="14">
public
class
Singleton
{
private
static
Singleton instance =
new
Singleton();
private
Single
Ïà¹ØÎĵµ£º
JDK»·¾³±äÁ¿ÅäÖõIJ½ÖèÈçÏ£º
1.ÎҵĵçÄÔ-->ÊôÐÔ-->¸ß¼¶-->»·¾³±äÁ¿.
2.ÅäÖÃÓû§±äÁ¿:
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡a.н¨ JAVA_HOME
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ C:\Program Files\Java\j2sdk1.5.0 £¨JDKµÄ°²×°Â·¾¶£©
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡b.н¨ PATH
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ %JAVA_HOME%\bin;%JAV ......
¶àÏ̵߳Äͬ²½ÒÀ¿¿µÄÊǶÔÏóËø»úÖÆ£¬synchronized¹Ø¼ü×ֵı³ºó¾ÍÊÇÀûÓÃÁË·âËøÀ´ÊµÏÖ¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
ÏÂÃæÒÔÒ»¸ö¼òµ¥µÄʵÀýÀ´½øÐжԱȷÖÎö¡£ÊµÀýÒªÍê³ÉµÄ¹¤×÷·Ç³£¼òµ¥£¬¾ÍÊÇ´´½¨10¸öỊ̈߳¬Ã¿¸öÏ̶߳¼´òÓ¡´Ó0µ½99Õâ100¸öÊý×Ö£¬ÎÒÃÇÏ£ÍûÏß³ÌÖ®¼ä²»»á³öÏÖ½»²æÂÒÐò´òÓ¡£¬¶øÊÇ˳ÐòµØ´òÓ¡¡£
ÏÈÀ´¿´µÚÒ»¶Î´úÂ룬ÕâÀïÎÒÃÇÔÚru ......
RuntimeExceptionlÀàÐ͵ÄÒì³£Ó¦Óñê×¼µÄ³ÌÐòÉè¼Æ¼¼ÇÉÀ´Ô¤·À£¬¶ø²»ÊÇʹÓÃtry-catch»úÖÆ²¶»ñ¡£Òþº¬Òì³£°üº¬ErrorsºÍRuntimeException£¬¶ÔÓÚºóÕßÓÃifÓï¾ä·ÀÖ¹²úÉú¡£Èç·ÃÎÊ¿ÉÄÜδÕýÈ·³õʼ»¯ÒýÓñäÁ¿Ç°£¬Ïȼì²éÊÇ·ñÖ¸Ïò¿ÕÖµ£»·ÃÎÊÊý×éʱ£¬Ïȼì²éϱêÊÇ·ñÔ½½ç¡£
×Ô¶¨ÒåÒì³££º´´½¨Ò»¸ö¼Ì³ÐExceptionµÄÀà»òÆäËûÒÑ´æÔÚµÄ×ÓÀ࣬´´½¨Ò ......
а²×°ÁË JDK 6 µÄ³ÌÐòÔ±ÃÇÒ²Ðí»á·¢ÏÖ£¬³ýÁË´«Í³µÄ bin¡¢jre µÈĿ¼£¬JDK 6 ÐÂÔöÁËÒ»¸öÃûΪ db µÄĿ¼¡£Õâ±ãÊÇ Java 6 µÄгÉÔ±£ºJava DB¡£ÕâÊÇÒ»¸ö´¿ Java ʵÏÖ¡¢¿ªÔ´µÄÊý¾Ý¿â¹ÜÀíϵͳ£¨DBMS£©£¬Ô´ÓÚ Apache Èí¼þ»ù½ð»á£¨ASF£©ÃûϵÄÏîÄ¿ Derby¡£ËüÖ»ÓÐ 2MB ´óС£¬¶Ô±È¶¯éüÉÏ G µÄÊý¾Ý¿âÀ´Ëµ¿ÉνÐäÕä¡£µ«Õâ²¢²»·Á° Derby ......
Ê×ÏÈ£¬java¶Ô¶ÔÏóºÍ»ù±¾ÀàÐ͵Ĵ¦ÀíÊDz»Ò»ÑùµÄ£¬ºÍCÓïÑÔÒ»Ñù£¬µ±°ÑJavaµÄ»ù±¾Êý¾ÝÀàÐÍ£¨Èçint£¬char£¬doubleµÈ£©×÷ΪÈë¿Ú²ÎÊý´«¸øº¯ÊýÌåµÄʱºò£¬´«ÈëµÄ²ÎÊýÔÚº¯ÊýÌåÄÚ²¿±ä³ÉÁ˾ֲ¿±äÁ¿£¬Õâ¸ö¾Ö²¿±äÁ¿ÊÇÊäÈë²ÎÊýµÄÒ»¸ö¿½±´£¬ËùÓеĺ¯ÊýÌåÄÚ²¿µÄ²Ù×÷¶¼ÊÇÕë¶ÔÕâ¸ö¿½±´µÄ²Ù×÷£¬º¯ÊýÖ´ÐнáÊøºó£¬Õâ¸ö¾Ö²¿±äÁ¿Ò²¾ÍÍê³ÉÁËËüµÄʹÃü£¬ ......