手寫一個(gè)單例(面試題目)

Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。 一般Singleton模式通常有幾種形式:

第一種模式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。只要初始化就創(chuàng)建了一個(gè)靜態(tài)的實(shí)例(飽漢)

public class Singleton{

    //注意這是private 只供內(nèi)部調(diào)用
    private Singleton(){}
    //在自己內(nèi)部定義自己一個(gè)實(shí)例
    private static final Singleton singleton=new Singleton();
    //公有方法訪問(wèn)得到實(shí)例  Singleton singleton=Singleton.getInstance();即可的得到實(shí)例
    public static Singleton getInstance(){
        return singleton;
    }

}

第二種模式:

public class Singleton{

    private static Singleton singleton = null;
    //使用時(shí)才生成實(shí)例
    public static synchronized Singleton getInstance() {
        if (null == singleton) {
            singleton = new Singleton();
        }
        return singleton;
    }
}

第三種模式:枚舉

public enum Singleton{
    ONE;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容