單例模式(懶漢式和餓漢式)及優化


手寫單例(餓漢式)

 1 class SingleObj{
 2     //私有變量 
 3     private static SingleObj single=new SingleObj();          
 4    //私有構造函數 不能被實例化  
 5     private static SingleObj(){}
 6 
 7     public static SingleObj getInstance(){
 8     return single;    
 9   }      
10 }

優點:沒有加鎖,執行效率更高

缺點:類加載時就初始化,浪費內存

 

 

懶漢式

 1 class Singleton{
 2       private static Singleton single;
 3       
 4       private static Singleton(){}
 5 
 6      public static synchronized Singleton getInstance(){
 7         if(single==null)
 8             single =new Singleton();
 9         return single;
10     }
11 }             
View Code

優點:第一次調用才初始化,避免浪費內存

缺點:加鎖了執行效率低

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM