Java基礎 200323

1. Java 中的設計原則?

  • 開閉原則(Open Close Principle):對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼,實現一個熱插拔的效果。所以一句話概括就是:爲了使程序的擴展性好,易於維護和升級。想要達到這樣的效果,我們需要使用接口和抽象類。

  • 里氏代換原則(Liskov Substitution Principle):任何基類可以出現的地方,子類一定可以出現。LSP 是繼承複用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行爲。里氏代換原則是對 “開 - 閉” 原則的補充。實現 “開 - 閉” 原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規範。

  • 依賴倒轉原則(Dependence Inversion Principle):針對接口編程,依賴於抽象而不依賴於具體。

  • 接口隔離原則(Interface Segregation Principle):使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦合度的意思:降低依賴,降低耦合。

  • 迪米特法則(最少知道原則)(Demeter Principle):一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。

  • 合成複用原則(Composite Reuse Principle){} 原則是儘量使用合成 / 聚合的方式,而不是使用繼承

  • 聚合用來表示 “擁有” 關係或者整體與部分的關係

  • 合成用來表示一種強得多的 “擁有” 關係


2. 說一下你熟悉的設計模式?

  • 觀察者模式
  • 裝飾者模式
  • 代理模式

3. 簡單工廠和抽象工廠有什麼區別?

  • 工廠模式:定義一個用於創建對象的接口,讓子類決定實例化哪一個類
  • 抽象工廠模式:爲創建一組相關或相互依賴的對象提供一個接口,而且無需指定他們的具體類

4. 裝飾者模式和適配器模式以及代理模式的區別?

裝飾者和代理模式的區別

  • 裝飾者模式關注的是對象的動態添加功能。代理模式關注的是對對象的控制訪問,對它的用戶隱藏對象的具體信息。

裝飾者模式和適配器模式

  • 裝飾者模式和被裝飾的類要實現同一個接口,或者裝飾類是被裝飾的類的子類。適配器模式和被適配的類具有不同的接口。
  • 適配器模式被用於橋接兩個接口,而裝飾模式的目的是在不修改類的情況下給類增加新的功能。

5. 說出幾個在 JDK 庫中使用的設計模式?

裝飾器設計模式(Decorator design pattern)被用於多個 Java IO 類中。單例模式(Singleton pattern)用於 Runtime,Calendar 和其他的一些類中。工廠模式(Factory pattern)被用於各種不可變的類如 Boolean,像 Boolean.valueOf,觀察者模式(Observer pattern)被用於 Swing 和很多的事件監聽中。


【Java 面試那點事】

這裏致力於分享 Java 面試路上的各種知識,無論是技術還是經驗,你需要的這裏都有!

這裏可以讓你【快速瞭解 Java 相關知識】,並且【短時間在面試方面有跨越式提升】

面試路上,你不孤單!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章