大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java單例模式面試題,實戰代碼舉例

Java單例模式面試題,實戰代碼舉例

更新時間:2023-01-30 14:40:32 來源:動力節點 瀏覽1274次

在我們經歷過Java面試時會發現,面試官問到最多的問題基本圍繞著單例設計模式。因為它的知識考點是比較多的,并且也是我們在開發過程中會經常用到的。所以,熟知一些高頻出現的相關面試題,對于我們日后的面試會有很大的幫助。

java單例模式面試題

首先,在Java中,什么是單例呢?

就是保證類在內存中只有一個對象。

那么問題來了,如何才能保證類在內存中只有一個對象呢?

A:把構造方法私有化;

B:在成員變量中自己new一個類實例,并用private將其私有化且用static將其靜態修飾;

C:對外提供一個靜態方法返回這個對象。

依據以上的思路,就可以寫出如下的代碼:

public class Student{
    private Student(){}
    private static Student s=new Student();
    public static Student getStudent(){
        return s;
    }
}

以上的實現方法在業內稱為”餓漢式”,可以這樣理解:這個單例對象隨著類的加載就被創建出來了,就像餓狼撲食一樣,這里的”狼”就是單例對象,而“食”就是類加載。

還有另一種實現方法稱為“懶漢式”。先看代碼實現:

public class Student{
    private Student(){}
    private static Student s=null;
    public static Student getStudent()
    {
        if(s==null)
        {
            s=new Student();
        }
        return s;
    }
}

從代碼中可以看出:這個單例對象是隨著調用類的靜態方法才被被創建的,并不是隨著類的加載而被創建,所以它要滯后于類加載,故稱為“懶漢式”。

但以上代碼會出現線程安全問題。

那就讓我來分析一下為什么會出現線程安全問題

判斷是否會出現線程安全問題必須滿足一下三個條件,缺一不可:

A:是否為多線程環境;

B:是否有共享數據;

C:是否有多條語句操作共享數據

那我就按這三個條件分析以上代碼:

A是有可能的

B共享數據就是 Student對象

C

if(t==null){

t=new Teacher();

}

這里有兩條語句在操作共享數據

那么問題又來了,如何解決線程安全問題呢?

加鎖

而加鎖又有兩種實現方法:1.同步代碼塊;2.同步方法

顯然對以上代碼而言,同步方法是個簡潔明了的。所以修改后的代碼如下:

public class Student{
    private Student(){}
    private static Student s=null;
    public static synchronized Student getStudent(){
        if(s==null)
        {
            s=new Student();
        }
        return s;
    }
}

那么,這兩種單例實現代碼的應用場景是什么呢?

答案:開發一般用“餓漢式”,因為它不會出現問題且代碼簡單,面試時用“懶漢式”,因為它不僅考察了單例模式實現,還考察了線程安全。

以上就是“Java單例模式面試題,實戰代碼舉例”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩精品一区二区三区中文精品 | 美女羞羞网站 | 四虎4444hu4影视最新地址 | 99热福利 | 中文字幕一区二区三区免费看 | 欧美在线视频a | 亚洲小younv另类 | 视频一区二区三区在线观看 | 中国国产高清一级毛片 | 天天色天天 | 欧美成人高清 | 99最新网址 | 波霸欧美性猛交xxxxxx | 高清国产精品久久久久 | 欧美性另类69xxxx极品 | 国外成人在线视频 | 337p日本大胆欧美人术艺术6 | 在线日韩亚洲 | 一级毛片免费高清视频 | free性欧美极度另类超级大 | 久久久久国产一级毛片高清版 | 美国一级毛片片aa久久综合 | 四虎黄色影视库 | 国产福利在线看 | 97看看| 绿色视频在线看 | 韩国 欧美 日产 国产精品 | 国产香蕉久久精品综合网 | 中文字幕一区二区三区 精品 | 久草在在线 | 亚洲韩国日本一级二级r级 亚洲韩精品欧美一区二区三区 | 波多野结衣3女同在线观看 波多野结衣av1区2区3区 | 国产香蕉免费精品视频 | 成人国产第一区在线观看 | jizzjiz熟丰满老妇日本 | 亚洲精品国产一区二区三区在 | 久久艹精品 | 亚洲精品国产啊女成拍色拍 | 日韩亚洲欧美综合一区二区三区 | 色综合天天综合网看在线影院 | 一级做a爱片特黄在线观看免费看 |