¡¾ºÚÂí³ÌÐòÔ±¡¿JavaÖе¥ÀýÉè¼ÆÄ£Ê½µÄ¼¸ÖÖ³£¼ûд·¨

¡¾ºÚÂí³ÌÐòÔ±¡¿JavaÖе¥ÀýÉè¼ÆÄ£Ê½µÄ¼¸ÖÖ³£¼ûд·¨

ǰ¼¸ÌìÔÚÉÏJava»ù´¡¿ÎµÄʱºò£¬½²µ½private¹Ø¼ü×ÖµÄ×÷Ó㬾ÍÊÇËùÓб»privateÐÞÊεijÉÔ±±äÁ¿ºÍ³£Á¿¶¼Ö»ÄÜÔÚ±¾ÀàÖÐʹÓá£Ò²¾Í˵¹¹Ôì·½·¨Ò»µ©±»privateÐÞÊξÍÖ»ÄÜÔÚ±¾ÀàÖÐʹÓᣲ»ÄÜÔÙÍⲿ´´½¨±¾ÀàµÄʵÀý¡£Ò»°ãµÄÓ¦Óó¡¾°ÓÐÁ½¸ö£¬Ò»¸öÊǹ¤¾ßÀ࣬ÎÒÃǾÍÊDz»Ï£Íû±ðÈË´´½¨¶ÔÏó£¬ËùÒ԰ѹ¹Ôì·½·¨Ë½Óл¯¡£ÁíÒ»¸ö¾ÍÊǵ¥ÀýÉè¼ÆÄ£Ê½ÖУ¬ÎÒÃÇÒ²²»Ï£Íû±ðÈËËæÒâ´´½¨ÊµÀý£¬ÒªÏëµÃµ½±¾ÀàµÄʵÀý£¬±ØÐëµ÷ÓøøÌṩµÄstaticµÄ»ñȡʵÀýµÄ·½·¨²Å¿ÉÒÔ¡£½ñÌìÔÛÃǾÍÀ´×ܽáһϣ¬µ¥ÀýÉè¼ÆÄ£Ê½µÄ¼¸ÖÖ³£¼ûµÄд·¨ÓÐʲôÓÅȱµã¡£ µÚÒ»ÖÖ£¬ÀÁººÊ½£¬Ï̲߳»°²È«

01 public class Singleton {

02 private static Singleton instance; 03 private Singleton (){} 04

05 public static Singleton getInstance() { 06 if (instance == null) {

07 instance = new Singleton(); 08 }

09 return instance; 10 } 11 }

µÚ¶þÖÖ£¬ÀÁººÊ½£¬Ḭ̈߳²È«

01 public class Singleton {

02 private static Singleton instance; 03 private Singleton (){}

04 public static synchronized Singleton getInstance() { 05 if (instance == null) {

06 instance = new Singleton(); 07 }

08 return instance; 09 } 10 }

ºÚÂí³ÌÐòÔ±¼ÃÄÏÖÐÐÄ ±àÖø

ÕâÖÖд·¨£¬ËäÈ»¶àÏ̵߳Äʱºò²»»á³öÎÊÌ⣬µ«ÊÇЧÂÊÌ«µÍ¡£ µÚÈýÖÖ£¬¶öººÊ½

1 public class Singleton {

2 private static Singleton instance = new Singleton(); 3 private Singleton (){}

4 public static Singleton getInstance() { 5 return instance; 6 } 7 }

ÔÚÀà¼ÓÔØÊ±´´½¨£¬±ÜÃâ¶àÏ̵߳ÄÎÊÌâ¡£ µÚËÄÖÖ£¬¾²Ì¬ÄÚ²¿Àà

1 public class Singleton {

2 private static class SingletonHolder {

3 private static final Singleton INSTANCE = new Singleton(); 4 }

5 private Singleton (){}

6 public static final Singleton getInstance() { 7 return SingletonHolder.INSTANCE; 8 } 9 }

Ò²ÊÇÓÃÀà¼ÓÔØ»úÖÆÀ´±£Ö¤³õʼ»¯Ê±Ö»ÓÃÒ»¸öỊ̈߳¬µ«ÊǺô¦ÊÇSingleTon±»¼ÓÔØÁË£¬ÊµÀý²»Ò»¶¨±»´©¼þ£¬Ö»Óõ÷ÓÃgetInstance()·½·¨Ê±£¬²Å»áÏÔʾµÄ¼ÓÔØSingletonHolder£¬´Ó¶øÊµÀý»¯Singleton. µÚÎåÖÖ·½Ê½£¬Ã¶¾Ù

1 public enum Singleton { 2 INSTANCE;

3 public void method() { 4 } 5 }

ºÚÂí³ÌÐòÔ±¼ÃÄÏÖÐÐÄ ±àÖø

µÚÁùÖÖ£¬Ë«ÖؼìУ 01 public class Singleton {

02 private volatile static Singleton singleton; 03 private Singleton (){}

04 public static Singleton getSingleton() { 05 if (singleton == null) {

06 synchronized (Singleton.class) { 07 if (singleton == null) {

08 singleton = new Singleton(); 09 } 10 } 11 }

12 return singleton; 13 } 14 }

ºÚÂí³ÌÐòÔ±¼ÃÄÏÖÐÐÄ ±àÖø

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4