Java設計模式之一——單例模式面試題特點、理解


(1)單例模式特點(什么是單例模式)?
 a.單例類只能有一個實例。
 b.單例類必須自己創建自己的唯一實例。
 c.單例類必須給所有其他對象提供這一實例。


(2)單例模式的作用(用單例模式的目的)?
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

(3)一般Singleton模式通常有幾種種形式:
通常有3中形式(回答2種的也對,因為第3種不常見)
第一種形式: 餓漢式單例類
 //餓漢式單例類.在類初始化時,已經自行實例化 
public class Singleton {
     private Singleton(){}
   private static Singleton instance = new Singleton(); 
   public static Singleton getInstance() {
     return instance;   
   } 

第二種形式:懶漢式單例類 
public class Singleton { 
    private Singleton(){}
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
   if (instance==null)instance=new Singleton();
    return instance;
    }



第三種形式:登記式單例(省略)


(4)哪一種模式更安全?為什么?
第一種形式要更加安全些
instance = new Singleton(); 
static屬於類的資源,類資源在jvm加載類的時候就加載好了,instance一直引用這new Singleton(),所以永遠都不會釋放一直存在與內存中直到程序結束運行

第2種的話如果兩個線程同一時刻去訪問getInstance的時候就可能創建兩個實例,所以不安全
解決辦法(加上同步鎖)

 

引自:小虎還鄉的單例模式面試題(特點、理解)

 


免責聲明!

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



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