单例模式中的饿汉式和懒汉式的区别?

饿汉式: 
              public  class  Singleton{ 
                        private  static  Singleton  singleton  =  new  Singleton(); 

                        private  Singleton (){}   

                        public  Singleton  getInstance();{

                                return   singletion;

                        } 

              }   

懒汉式: 
               public  class  Singleton{ 
                        private  static  Singleton  singleton  =  null; 
                        public  static  synchronized  Singleton  getInstance(){ 
                                  if(singleton==null){ 
                                          singleton  =  new  Singleton(); 
                                  } 
                                return  singleton; 
                        } 
              }   

                 区别:饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变 
                            懒汉式优点是延时加载,是在需要的时候才创建对象。缺点是应该用同步。如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
                             推荐使用第一种。
  

你可能感兴趣的:(单例模式中的饿汉式和懒汉式的区别?)