原创 軟件設計模式-中介者模式(仲裁者模式)總結

類圖 目的 “定義一個封裝-系列對象交互的對象。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.如何避免創建大量不必要的對象