91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

面試官:關于設計模式的這些問題你來回答一下

發布時間:2020-07-08 13:37:47 來源:網絡 閱讀:144 作者:wx5d7cbef3496f3 欄目:編程語言

前言

前幾天小伙伴告訴我他面試的時候面試官問到了設計模式相關的問題,有幾道感覺答的不太好,可能拿不到offer了;

好在面試官仁慈,勉強拿到了offer,聽說是看在他的態度比較好,給他加了點分,但是設計模式掌握不太好的問題還是存在的;小編也是把最新整理的設計模式的視頻給了他才解決的

小編把他被問到的設計模式相關的問題整理了一下,分享給大家,供大家參考

設計模式面試題

1. 請列舉出在 JDK 中幾個常用的設計模式?

單例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些類中。工廠模式

(Factory pattern)被用于各種不可變的類如 Boolean,像 Boolean.valueOf,觀察者模式

(Observer pattern)被用于 Swing 和很多的事件監聽中。裝飾器設計模式(Decorator

design pattern)被用于多個 Java IO 類中。

2. 什么是設計模式?你是否在你的代碼里面使用過任 何設計模式?

設計模式是世界上各種各樣程序員用來解決特定設計問題的嘗試和測試的方法。設計模式

是代碼可用性的延伸

3.Java 中什么叫單例設計模式?請用 Java 寫出線程安全的單例模式

單例模式重點在于在整個系統上共享一些創建時較耗資源的對象。整個應用中只維護一個

特定類實例,它被所有組件共同使用。Java.lang.Runtime 是單例模式的經典例子。從 Java

5 開始你可以使用枚舉(enum)來實現線程安全的單例。

4. 在 Java 中,什么叫觀察者設計模式(observer design pattern )?

觀察者模式是基于對象的狀態變化和觀察者的通訊,以便他們作出相應的操作。簡單的例

子就是一個天氣系統,當天氣變化時必須在展示給公眾的視圖中進行反映。這個視圖對象

是一個主體,而不同的視圖是觀察者。

5. 使用工廠模式最主要的好處是什么?在哪里使用?

工廠模式的最大好處是增加了創建對象時的封裝層次。如果你使用工廠來創建對象,之后

你可以使用更高級和更高性能的實現來替換原始的產品實現或類,這不需要在調用層做任

何修改。

6. 舉一個用 Java 實現的裝飾模式(decorator design pattern) ?它是作用于對象層次還是類

層次?

裝飾模式增加強了單個對象的能力。Java IO 到處都使用了裝飾模式,典型例子就是

Buffered 系列類如 BufferedReader 和 BufferedWriter,它們增強了 Reader 和 Writer 對象,

以實現提升性能的 Buffer 層次的讀取和寫入。

7. 在 Java 中,為什么不允許從靜態方法中訪問非靜態變量?

Java 中不能從靜態上下文訪問非靜態數據只是因為非靜態變量是跟具體的對象實例關聯

的,而靜態的卻沒有和任何實例關聯。

8. 設計一個 ATM 機,請說出你的設計思路?

比如設計金融系統來說,必須知道它們應該在任何情況下都能夠正常工作。不管是斷電還

是其他情況,ATM 應該保持正確的狀態(事務) , 想想 加鎖(locking)、事務

(transaction)、錯誤條件(error condition)、邊界條件(boundary condition) 等等。盡管

你不能想到具體的設計,但如果你可以指出非功能性需求,提出一些問題,想到關于邊界

條件,這些都會是很好的。

9. 在 Java 中,什么時候用重載,什么時候用重寫?

如果你看到一個類的不同實現有著不同的方式來做同一件事,那么就應該用重寫

(overriding),而重載(overloading)是用不同的輸入做同一件事。在 Java 中,重載的方

法簽名不同,而重寫并不是。

10. 舉例說明什么情況下會更傾向于使用抽象類而不是接口?

接口和抽象類都遵循”面向接口而不是實現編碼”設計原則,它可以增加代碼的靈活性,

可以適應不斷變化的需求。下面有幾個點可以幫助你回答這個問題:

在 Java 中,你只能繼承一個類,但可以實現多個接口。所以一旦你繼承了一個類,你就

失去了繼承其他類的機會了。

接口通常被用來表示附屬描述或行為如:Runnable、Clonable、Serializable 等等,因此當你

使用抽象類來表示行為時,你的類就不能同時是 Runnable 和 Clonable(注:這里的意思是指

如果把 Runnable 等實現為抽象類的情況),因為在 Java 中你不能繼承兩個類,但當你使用

接口時,你的類就可以同時擁有多個不同的行為。

在一些對時間要求比較高的應用中,傾向于使用抽象類,它會比接口稍快一點。

如果希望把一系列行為都規范在類繼承層次內,并且可以更好地在同一個地方進行編碼,

那么抽象類是一個更好的選擇。有時,接口和抽象類可以一起使用,接口中定義函數,而

在抽象類中定義默認的實現。

小編最新整理的設計模式視頻

面試官:關于設計模式的這些問題你來回答一下


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵寿县| 普兰县| 淅川县| 滕州市| 鸡泽县| 阜城县| 辽宁省| 旌德县| 东宁县| 五寨县| 商洛市| 盐边县| 上虞市| 临城县| 重庆市| 林州市| 东乡| 吴江市| 民权县| 习水县| 互助| 孝昌县| 九龙坡区| 剑川县| 平南县| 新乡县| 湘乡市| 长岭县| 呼和浩特市| 尖扎县| 和平县| 辽阳市| 扎兰屯市| 崇信县| 太湖县| 搜索| 宁远县| 葫芦岛市| 贞丰县| 霍州市| 岳阳市|