原创 軟件設計模式-中介者模式(仲裁者模式)總結
類圖 目的 “定義一個封裝-系列對象交互的對象。Mediator通過防止對象間顯示地相互引用來促使鬆耦合,且可以獨立地改變他們之間的交互。"[GoF] 要解決的問題 如何避免一組交互對象之間的緊密耦合? 如何獨立改變一組對象之間的相互作
原创 軟件設計模式-外觀模式總結
目的 爲子系統的一組接口提供統一的接口。Façade定義了使子系統更易於使用的更高級別的接口。 要解決的問題 複雜的軟件系統通常被構造(分層)成子系統 複雜子系統的客戶端引用並瞭解(取決於)許多不同的對象(具有不同的接口),這使得客戶端與
原创 軟件設計模式-職責鏈模式總結
目的 通過給多個對象處理請求的機會,避免將請求的發送方與其接收方耦合。將接收對象串聯起來,將請求沿鏈傳遞,直到有對象處理請求爲止 要解決的問題 如何避免將請求的發送方耦合到其接收方 多個對象如何處理請求 解決方案 (1)這使得請求的發
原创 軟件設計模式-裝飾器模式總結
裝飾模式: 目的 動態地將額外的責任附加到對象上。裝飾器提供了一個靈活的子類擴展功能的替代方法。 2.要解決的問題 子類化是在編譯時靜態擴展類功能(向類添加職責)的標準方法。實例化子類後,該功能將在其生命週期綁定到該實例,並且無
原创 關於Java報錯:java.lang.ArithmeticException:divide by zero
我們在進行除數運算時,是不是很容易忽略除數爲0的情況 若除數爲0,則報java.lang.ArithmeticException:divide by zero 因此除數不能爲零,請務必檢查代碼是否有機會出現除數爲零的情況
原创 操作系統-優先級進程調度
在採用優先級進程調度時,運行進程是否一定是系統中優先級最高的進程?爲什麼? 不一定。因爲高優先級的進程有可能正處在阻塞隊列中,進程調度就從就緒隊列中選一個進程佔用 CPU,這個被選中的進程可能優先級較低。
原创 關於圖的拓撲排序
實現下圖的拓撲排序。 設計思想: 首先對有向圖,我們採取鄰接表作爲數據結構。且將表頭指針改爲頭結點, 其數據域存放該結點的入度,入度設爲零的結點即沒有前趨。 在建立鄰接表輸入之前,表頭向量的每個
原创 操作系統-進程狀態變遷分析
某系統的進程狀態變遷圖如圖2-32 所示, 請說明: (1)引起各種狀態變遷的典型事件有哪些? (2)當我們觀察系統中某些進程時,發現某一進程產生的一次狀態變遷能引起另一進程作一次狀態變遷。在什麼情況下,當一個進程發生變遷3 時能否立即引
原创 操作系統-若系統中沒有運行進程,是否一定沒有就緒進程?爲什麼?
若系統中沒有運行進程,是否一定沒有就緒進程?爲什麼? 是。因爲若系統中沒有運行進程,那麼系統很快會選擇一個就緒進程運行。只有就緒隊列中無進程時,CPU 纔可以處於空閒狀態。
原创 軟件設計模式-Singleton設計模式解決方案
Singleton設計模式描述了什麼解決方案: 1.讓類自身負責其只能實例化一次。 2.定義一個公共靜態操作以提供該類的唯一實例。 3.定義一個靜態操作以提供類的唯一實例。子類不能重新定義靜態操作。 4.將類的構造函數設爲私有,這樣就永遠
原创 Android使用Service及BroadcastReceiver實現音樂播放器
播放音樂,我們需要在AndroidManifest.xml文件添加權限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <
原创 操作系統-系統中既沒有運行進程,也沒有就緒進程,系統中是否就沒有進程
若系統中既沒有運行進程,也沒有就緒進程,系統中是否就沒有進程?爲什麼? 不一定。因爲系統中的所有進程可能都處於阻塞狀態。
原创 操作系統-程序執行時間分析
題目: 設內存中有三道程序A、B、C,它們按A、B、C 的優先次序執行。它們的計算和I/O 操作的時間見下表。假設三道程序使用相同設備進行I/O 操作,即程序以串行方式使用設備,試畫出單道運行和多道運行的時間關係圖(調度程序的執行時間忽略
原创 軟件設計模式-Singleton設計模式解決的問題
Singleton設計模式解決了什麼問題: 1.如何確保一個類只有一個實例? 2.如何確保一個類只有兩個實例? 3.如何限制一個類的實例數 4.一個類控制(並負責)如何實例化它 5.如何避免創建大量不必要的對象