從 Java 介面、抽象方法聊到 C++ 虛函數,再延伸至 JNI、動態/靜態庫、進程間通訊、作業系統進程管理、Android Framework 原理、AIDL 介面等。跨度極大,考驗知識體系的廣度與關聯性。
尊敬的應聘者,感謝您來面試。經評估,您目前不適合該職位。建議:
- 重視基礎知識,不要只會 SSH 框架。
- 多學習 Linux 相關知識。
- 推薦閱讀《Java 核心技術》、《Thinking in Java》。
- 多上技術論壇交流。
啟示:基礎決定上限,框架只是工具;作業系統與原理知識是高階工程師的分水嶺。
定義一對多依賴:多個觀察者同時監聽一個主題。主題狀態變化時,自動通知所有觀察者更新。
update() 介面。java.util.Observable:被觀察者基類,提供 setChanged()、notifyObservers()。java.util.Observer:觀察者介面,單一方法 update(Observable o, Object arg)。關鍵規則:必須先呼叫 setChanged(),再呼叫 notifyObservers(),否則觀察者不會收到通知。
| 優勢 | 說明 |
|---|---|
| 簡化開發 | 基於組件模型,支援 WORA(Write Once, Run Anywhere),提升生產力。 |
| 整合既有系統 | 提供工業標準 API(JCA、JMS 等)存取企業資訊系統。 |
| 可擴展性 | 容器提供事務、連接池、生命週期管理,支援水平擴展。 |
| 安全機制 | 跨層一致的安全模型(JAAS、JACC、JASPIC)。 |
| 場景 | 推薦 |
|---|---|
| 大文檔、高效能、需 XPath/Schema | DOM4J |
| 小文檔、需修改、Java 風格 API | JDOM |
| 跨語言、標準化、教學 | DOM (W3C 標準) |
| 超大文檔、單次讀取、記憶體受限 | SAX |