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ÖеÄÎÊÌâÄØ£¿
Ïà¹ØÎĵµ£º
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
SetºÍÊýѧÖеļ¯ºÏÊÇͬһ¸ö¸ÅÄ¾ÍÊÇûÓÐÖØ¸´ÔªËصļ¯ºÏ¡£
ÕâÆªÎÄÕÂÖ÷ÒªÂÛÊöÁËSetÊÇÈçºÎʵÏÖ"ûÓÐÖØ¸´ÔªËØ"£¨no duplicate elements£©µÄ£¬ÒÔ¼°²ûÊöÁËʲôÊÇ“ÖØ¸´”£¨duplicate£©£¬ÊÇÏàͬµÄµØÖ·¿Õ¼ä£¿ÊÇequalsµÄ·µ»ØÖµÎªtrue£¿ÊÇcompareToµÄ·µ»ØÖµÎª0 £¿»¹ÊÇÓÐÏàͬµÄhashCode£¿±¾ÎÄ»¹¸ø³öÁËÔÚʲôÇé¿öÏÂʹÓÃʲà ......
ÊìϤC++µÄÈ˶ÔÓÚÁ½¸ö×Ö·û´®±È½ÏµÄ´úÂëÒ»¶¨ºÜÁ˽⣺
(string1==string2)
µ«ÔÚjavaÖУ¬Õâ¸ö´úÂ뼴ʹÔÚÁ½¸ö×Ö·û´®ÍêÈ«ÏàͬµÄÇé¿öÏÂÒ²»á·µ»Øfalse
JavaÖбØÐëʹÓÃstring1.equals(string2)À´½øÐÐÅжÏ
²¹³ä
Èç¹û£º
string s1=new String("Hello");
string s2=new String("Hello");
Ôò(s1==s2)=false
Èç¹û ......
Ò»¡¢JAVA¡£ÒªÏë³ÉΪJAVA£¨¸ß¼¶£©¹¤³Ìʦ¿Ï¶¨ÒªÑ§Ï°JAVA¡£Ò»°ãµÄ³ÌÐòÔ±»òÐíÖ»ÐèÖªµÀһЩJAVAµÄÓï·¨½á¹¹¾Í¿ÉÒÔÓ¦¸¶ÁË¡£µ«Òª³ÉΪJAVA£¨¸ß¼¶£©¹¤³Ìʦ£¬ÄúÒª¶ÔJAVA×ö±È½ÏÉîÈëµÄÑо¿¡£ÄúÓ¦¸Ã¶àÑо¿Ò»ÏÂJDBC¡¢IO°ü¡¢Util°ü¡¢Text°ü¡¢JMS¡¢EJB¡¢RMI¡¢Ï̡߳£Èç¹û¿ÉÄÜ£¬Ï£ÍûÄú¶ÔJAVAµÄËùÓаü¶¼ä¯ÀÀһϣ¬ÖªµÀ´ó¸ÅµÄAPI£¬ÕâÑùÄú¾Í·¢ÏÖÆä ......
Ò»¡¢Array £¬ Arrays
JavaËùÓГ´æ´¢¼°Ëæ»ú·ÃÎÊÒ»Á¬´®¶ÔÏó”µÄ×ö·¨£¬arrayÊÇ×îÓÐЧÂʵÄÒ»ÖÖ¡£
1¡¢
ЧÂʸߣ¬µ«ÈÝÁ¿¹Ì¶¨ÇÒÎÞ·¨¶¯Ì¬¸Ä±ä¡£
array»¹ÓÐÒ»¸öȱµãÊÇ£¬ÎÞ·¨ÅÐ¶ÏÆäÖÐʵ¼Ê´æÓжàÉÙÔªËØ£¬lengthÖ»ÊǸæËßÎÒÃÇarrayµÄÈÝÁ¿¡£
2¡¢JavaÖÐÓÐÒ»¸öArraysÀ࣬רÃÅÓÃÀ´²Ù×÷array¡£
a ......