Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

javaÉè¼ÆÄ£Ê½Ö®Singleton(µ¥Ì¬)

¶¨Òå:
SingletonģʽÖ÷Òª×÷ÓÃÊDZ£Ö¤ÔÚJavaÓ¦ÓóÌÐòÖУ¬Ò»¸öÀàClassÖ»ÓÐÒ»¸öʵÀý´æÔÚ¡£
Ôںܶà²Ù×÷ÖУ¬±ÈÈ罨Á¢Ä¿Â¼ Êý¾Ý¿âÁ¬½Ó¶¼ÐèÒªÕâÑùµÄµ¥Ï̲߳Ù×÷¡£
»¹ÓÐ, singletonÄܹ»±»×´Ì¬»¯;
ÕâÑù£¬¶à¸öµ¥Ì¬ÀàÔÚÒ»Æð¾Í¿ÉÒÔ×÷Ϊһ¸ö״̬²Ö¿âÒ»ÑùÏòÍâÌṩ·þÎñ£¬±ÈÈ磬ÄãÒªÂÛ̳ÖеÄÌû×Ó¼ÆÊýÆ÷£¬Ã¿´Îä¯ÀÀÒ»´ÎÐèÒª¼ÆÊý£¬µ¥Ì¬ÀàÄÜ·ñ±£³ÖסÕâ¸ö¼ÆÊý£¬²¢ÇÒ
ÄÜsynchronizeµÄ°²È«×Ô¶¯¼Ó1£¬Èç¹ûÄãÒª°ÑÕâ¸öÊý×ÖÓÀ¾Ã±£´æµ½Êý¾Ý¿â£¬Äã¿ÉÒÔÔÚ²»Ð޸ĵ¥Ì¬½Ó¿ÚµÄÇé¿öÏ·½±ãµÄ×öµ½¡£
ÁíÍâ·½Ãæ£¬SingletonÒ²Äܹ»±»ÎÞ״̬»¯¡£Ìṩ¹¤¾ßÐÔÖʵŦÄÜ£¬
Singletonģʽ¾ÍΪÎÒÃÇÌṩÁËÕâÑùʵÏֵĿÉÄÜ¡£Ê¹ÓÃSingletonµÄºÃ´¦»¹ÔÚÓÚ¿ÉÒÔ½ÚÊ¡Äڴ棬ÒòΪËüÏÞÖÆÁËʵÀýµÄ¸öÊý£¬ÓÐÀûÓÚJavaÀ¬»ø»ØÊÕ£¨garbage collection£©¡£
ÎÒÃdz£³£¿´µ½¹¤³§Ä£Ê½ÖÐÀà×°ÈëÆ÷(class loader)ÖÐÒ²ÓÃSingletonģʽʵÏÖµÄ,ÒòΪ±»×°ÈëµÄÀàʵ¼ÊÒ²ÊôÓÚ×ÊÔ´¡£
ÈçºÎʹÓÃ?
Ò»°ãSingletonģʽͨ³£Óм¸ÖÖÐÎʽ:
public class Singleton {
¡¡¡¡private Singleton(){}
¡¡¡¡//ÔÚ×Ô¼ºÄÚ²¿¶¨Òå×Ô¼ºÒ»¸öʵÀý£¬ÊDz»ÊÇºÜÆæ¹Ö£¿
¡¡¡¡//×¢ÒâÕâÊÇprivate Ö»¹©ÄÚ²¿µ÷ÓÃ
¡¡¡¡private static Singleton instance = new Singleton();
¡¡¡¡//ÕâÀïÌṩÁËÒ»¸ö¹©Íⲿ·ÃÎʱ¾classµÄ¾²Ì¬·½·¨£¬¿ÉÒÔÖ±½Ó·ÃÎÊ
¡¡¡¡public static Singleton getInstance() {
¡¡¡¡¡¡¡¡return instance;
¡¡¡¡ }
}
µÚ¶þÖÖÐÎʽ:
public class Singleton {
¡¡¡¡private static Singleton instance = null;
¡¡¡¡public static synchronized Singleton getInstance() {
¡¡¡¡//Õâ¸ö·½·¨±ÈÉÏÃæÓÐËù¸Ä½ø£¬²»ÓÃÿ´Î¶¼½øÐÐÉú³É¶ÔÏó£¬Ö»ÊǵÚÒ»´Î
¡¡¡¡//ʹÓÃʱÉú³ÉʵÀý£¬Ìá¸ßÁËЧÂÊ£¡
¡¡¡¡if (instance==null)
¡¡¡¡¡¡¡¡instance£½new Singleton();
¡¡¡¡return instance; ¡¡¡¡}
}
ʹÓÃSingleton.getInstance()¿ÉÒÔ·ÃÎʵ¥Ì¬Àà¡£
ÉÏÃæµÚ¶þÖÐÐÎʽÊÇlazy initialization£¬Ò²¾ÍÊÇ˵µÚÒ»´Îµ÷ÓÃʱ³õʼSingleton£¬ÒÔºó¾Í²»ÓÃÔÙÉú³ÉÁË¡£
×¢Òâµ½lazy
initializationÐÎʽÖеÄsynchronized£¬Õâ¸ösynchronizedºÜÖØÒª£¬Èç¹ûûÓÐsynchronized£¬ÄÇôʹÓÃ
getInstance()ÊÇÓпÉÄܵõ½¶à¸öSingletonʵÀý¡£¹ØÓÚlazy
initializationµÄSingletonÓкܶàÉæ¼°double-checked locking (DCL)µÄÌÖÂÛ£¬ÓÐÐËȤÕß½øÒ»²½Ñо¿¡£
Ò»°ãÈÏΪµÚÒ»ÖÖÐÎʽҪ¸ü¼Ó°²È«Ð©¡£
ʹÓÃSingleton×¢ÒâÊÂÏ
ÓÐʱÔÚijЩÇé¿öÏ£¬Ê¹ÓÃSingleton²¢²»ÄÜ´ïµ½SingletonµÄÄ¿µÄ£¬ÈçÓжà¸öSingleton¶ÔÏóͬʱ±»


Ïà¹ØÎĵµ£º

½âÎöJavaÀàºÍ¶ÔÏóµÄ³õʼ»¯¹ý³Ì

ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......

Java»ñÈ¡Oracle´æ´¢¹ý³ÌÖÐÖ´Ðвéѯ·µ»ØµÄ½á¹û¼¯

ͨ¹ýJAVAµ÷ÓÃORACLEµÄ´æ´¢¹ý³Ì£¬ÔÚORACLEµÄ´æ´¢¹ý³ÌÄÚ²¿×öÁËÒ»¸ö²éѯÔÚJAVAÖлñÈ¡¸Ã²éѯ½á¹û£¬Õâ¸öºÍSYBASE¡¢SQLSERVERµÄ»ñÈ¡²»Ò»Ñù£¬µÈÎÒµÄÏÂһƪÎÄÕÂÎÒ»á½éÉÜÈçºÎ»ñÈ¡SYBASE¡¢SQLSERVERÔÚ´æ´¢¹ý³ÌÖÐÖ´ÐÐÁ˲éѯºóÈçºÎ»ñÈ¡Æä½á¹û¼°´æ´¢¹ý³ÌµÄ±àд¡£
ÔÚOracleÖÐÐèÒª·µ»Ø²éѯ½á¹û¼¯£¬±ØÐ뽫ÆäÒÔÓαêµÄÐÎʽ·µ»Ø£¬µ«ÓαêÓÖ²»ÊÇ ......

´ÓÐéÄâ»úÊÓ½Ç̸JavaÓ¦ÓÃÐÔÄÜÓÅ»¯

Java
ƽ̨ÒÑÎÞ´¦²»ÔÚ£¬Java EE¡¢Java SE¡¢Java ME ºÍ Java Card£¬Java
µÄ·¢Õ¹ÎªÎÞÊý³ÌÐòÔ±ÌṩÁ˹¤×÷»ú»á£¬¶¼ÊÇ“Java”£¬È»¶ø³ýÁË»ù±¾µÄ Java
Óï·¨´ó¶¼Ò»ÖÂÍ⣬³ÌÐòÔ±±ØÐë»ùÓÚ²»Í¬µÄƽ̨Óв»Í¬µÄ¿¼ÂÇ£¬Ñ§Ï°²»Í¬Æ½Ì¨µÄÌØµã£º
²»Í¬Æ½Ì¨µÄ»·¾³
Java EE ËùÔËÐеÄÓ²¼þ·þÎñÆ÷¡¢²Ù×÷ϵͳ£¬Java SE ËùÔÚ PC »ú ......

jspx Ò»¸öÀ´×ÔÓÚ°£¼°µÄjava web¿ìËÙ¿ª·¢¿ò¼Ü


 jspx Ò»¸öÀ´×ÔÓÚ°£¼°µÄjava web¿ìËÙ¿ª·¢¿ò¼Ü
À´Ô´£ºhttp://www.javaeye.com/news/4887
Ã÷£ºJavaEyeÐÂÎÅÎÄÕµİæÈ¨ÊôÓÚJavaEyeÍøÕ¾ËùÓУ¬ÑϽûÈκÎÍøÕ¾×ªÔØ±¾ÎÄ£¬·ñÔò±Ø½«×·¾¿·¨ÂÉÔðÈΣ¡
ÔõôÓÖð³öÒ»¸öweb¿ò¼Ü?
 
 
¿´¿´ÏÖ´æµÄJava webÓ¦ÓóÌÐò¿ò¼Ü£¬ÎÞÒ»ÀýÍâµÄÒªÇ󻨷ѴóÁ¿µÄʱ¼äÓ뾫Á¦ºó²Å¿ÉͶÈëÉ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ