1java.util
1.1Observable(觀察者模式Subject)
類:當(dāng)存在多對(duì)一的依賴關(guān)系的時(shí)候罐农,我們會(huì)用到觀察者模式纽乱,其中Subject用于注冊(cè)忿峻,移除葱她,發(fā)生改變時(shí)通知Observer撩扒,Observer收到通知之后進(jìn)行update.Observer儲(chǔ)存在Vector容器中。
方法 | 描述 |
---|---|
addObserver(Observer o) | 同步方法吨些,用于注冊(cè)監(jiān)聽者 |
deleteObserver(Observer o) | 同步方法搓谆,用于刪除監(jiān)聽者 |
notifyObservers() | 用于通知監(jiān)聽者有數(shù)據(jù)跟新,監(jiān)聽者自己來取數(shù)據(jù)豪墅,方法內(nèi)調(diào)用notifyObservers(null) |
notifyObservers(Object arg) | 用于通知監(jiān)聽者有數(shù)據(jù)跟新泉手,并且把新的數(shù)據(jù)傳遞過去,同步changed狀態(tài)偶器,遍歷所有觀察者斩萌,調(diào)用他們的update方法 |
deleteObservers() | 刪除所有的監(jiān)聽者 |
setChanged() | 設(shè)置標(biāo)志位changed為true,在notifyObservers前要手動(dòng)調(diào)用setChanged一次 |
clearChanged() | 設(shè)置標(biāo)志位changed為false屏轰,notifyObservers中在復(fù)制完Vector到Object[]后會(huì)執(zhí)行clearChanged颊郎,然后開始通知update |
1.2Observer(觀察者模式的觀察者)
接口:定義了update(Observable o, Object arg)方法,當(dāng)調(diào)用Observable的notifyObservers時(shí)霎苗,會(huì)觸發(fā)update姆吭。觀察者需要實(shí)現(xiàn)這個(gè)接口,重新uodate方法實(shí)現(xiàn)特定功能唁盏。
2.java.lang
2.1Process
抽象類:可以由ProcessBuilder.start()
(推薦使用)或者Runtime.getRuntime().exec()
這兩種方法創(chuàng)建一個(gè)封裝的控制操作系統(tǒng)的子進(jìn)程,提供了進(jìn)程的輸入輸出内狸,等待進(jìn)程完成,檢查進(jìn)程狀態(tài)厘擂,和殺死進(jìn)程的功能昆淡。主要用來執(zhí)行一些cmd命令,或者腳本驴党。子進(jìn)程中的輸入輸出不能保證安全不堵塞瘪撇,所以輸入輸出都是交給父進(jìn)程的。如果子進(jìn)程已經(jīng)沒有任何引用了,也不會(huì)被立刻殺掉倔既,而是繼續(xù)異步執(zhí)行著恕曲。
方法 | 描述 |
---|---|
getOutputStream() | 獲取的輸出流與子進(jìn)程的輸入流相連接 |
getInputStream() | 獲取輸入流與子進(jìn)程的輸出流相連 |
getErrorStream() | 獲取輸入流與子進(jìn)程的錯(cuò)誤輸出流相連 |
waitFor() | 調(diào)用的主進(jìn)程等待子進(jìn)程返回結(jié)果 |
waitFor(long timeout, TimeUnit unit) | 加入了等待的超時(shí)時(shí)間,通過unit控制時(shí)間 |
exitValue() | 返回子進(jìn)程的退出值 |
destroy() | kill子進(jìn)程 |
destroyForcibly() | 對(duì)destroy的優(yōu)化渤涌,功能相同佩谣,調(diào)用isAlive()判斷狀態(tài)。(推薦) |
isAlive() | 檢查子進(jìn)程是否存活 |