軟考基礎知識筆記
【1.計算機組成與結構】
【計算機中資料的表示】:
- 定點數:所有資料的小數點位置是固定的,小數點位置在資料最高位是定點小數,在最低位是定點整數,會有溢位的情況發生
- 浮點數:階符,階碼,數符,尾數 組成, 尾數決定精度,階碼決定資料範圍,最適合浮點數階碼的數字編碼是移碼
- 數的機器碼錶示:
- 原碼:符號位表示該數的符號,0正1負 。原碼中分+0和-0
- 反碼:符號位表示法和原碼一樣,正數不變,負數要取反(除掉符號位)
- 補碼:正數和原碼相同,負數=反碼加一,最適合加減運算的數字編碼
- 移碼:在數X上增加一個偏移量來定義的,常用於表示浮點數的階碼部分,如果機器字長n,規定偏移量是2的n-1次方,
移碼定義:[X移]=2(n-1次方)+X(-2(n-1)<=X<2(n-1))
- 校驗碼:
- 奇偶檢驗碼:通過在編碼中增加一位校驗位來使編碼中1的個數為奇數(奇校驗)偶數(偶校驗)
- 海明碼:在資料位中插入k個校驗碼,通過擴大碼距來實現檢錯和糾錯。資料位n 校驗位k 2(k次方)-1>=n+k
- 迴圈冗餘校驗碼(CRC):利用生成多項式的k個數據位和產生的r個校驗碼來進行編碼,編碼長度是k+r
- 數制之間轉換:2,8,10,16
【CPU】:
- 運算器:執行所有算術運算,執行所有邏輯運算並進行邏輯測試(與或非,值比較,零值測試)
- 指令暫存器(IR):CPU執行指令的時候,先把它從記憶體中載入到緩衝暫存器中,再送入IR暫存,指令譯碼器根據IR的內容來產生各種微操作指令
- 程式計數器(PC):PC具有寄存資訊和計數兩種功能,又稱為指令計數器。程式執行分為:順序執行,轉移執行。
- 程式開始執行之前,將程式的起始地址送入PC,該地址在程式載入到記憶體時確定,因此PC的內容即是程式第一條指令的地址,
執行指令時CPU會自動修改PC內容,確保永遠是將要執行的下一條指令地址,順序執行的話,只是簡單的加一,
轉移指令時,指令地址根據當前地址加上一個向前或向後的偏移量得到,或者根據轉移指令給出的直接轉移地址得到
- 程式開始執行之前,將程式的起始地址送入PC,該地址在程式載入到記憶體時確定,因此PC的內容即是程式第一條指令的地址,
- 地址暫存器(AR):AR儲存當前CPU所訪問的記憶體單元的地址。是為了解決記憶體和CPU速度不匹配的問題
指令譯碼器(ID):指令分為操作碼和地址碼兩部分,由該部分進行解析,協調硬體的執行
- 時序控制邏輯:控制指令的執行時間順序
- 匯流排邏輯:為多個功能部件服務的資訊通路的控制電路
- 中斷邏輯:控制各種中斷請求,根據優先順序來對中斷請求排隊。逐個交給CPU執行
暫存器組:
專用暫存器,通用暫存器。上面的都是專用的,通用的可以給程式猿控制(提高速度,貌似沒卵用)
【儲存系統】:
分類:
- 讀寫儲存器(RAM):
- 只讀儲存器(ROM):
- 固定只讀儲存器(ROM)
- 可程式設計的只讀儲存器(PROM)
- 可擦除的可程式設計只讀儲存器(EPROM)
- 閃速儲存器(Flash Memory)
相聯儲存器 CAM 按內容定址的儲存器
Cache:高速緩衝儲存器:為了解決記憶體和CPU速度不匹配的問題而存在
- 地址映像:
- 直接映像:主存按Cache的大小分成區,每個區的塊數和Cache總塊數相同,塊號相同的映像到Cache中同一個塊號那裡(多個區中的同號塊映像到Cache同號塊上)
- 全相聯映像:主存的塊調入Cache不受限制(任意位置)
- 組相聯映像:介於全相聯和組相聯之間
- 替換演算法
- 隨機替換演算法 RAND:隨機的
- 先進先出 FIFO : 總是把最先呼叫的Cache替換出去
- 最近最少使用 LRU:把當前近期Cache使用次數最少的那塊替換出去(先看訪問,再看修改狀態)
- 優化替換演算法:先執行一次程式統計Cache使用情況,第二次執行程式再選擇最優的演算法來替換
- 地址映像:
磁碟:
- 磁碟儲存器:由碟片,驅動器,控制器和介面組成。其儲存容量有兩種指標:格式化容量和非格式化容量。
- 非格式化容量 = 面數(磁軌數/面)內圓周長*最大位密度
- 格式化容量 = 面數 (磁軌數/面)(扇區數/道)*(位元組數/扇區)
- 光碟儲存器:。。。
- 磁碟儲存器:由碟片,驅動器,控制器和介面組成。其儲存容量有兩種指標:格式化容量和非格式化容量。
【例題】
記憶體按位元組編址從 A5000H 到 DCFFFH的區域,其儲存容量為224KB 若用16K * 4bit 的儲存器晶片構成該記憶體,需要( 28) 片
(因為位數來計算的4bit的話,前面的單位是減半的,所以最好是使用bit來計算)
解析:DCFFFH - A5000H = 38000H (16進位制) 轉換成二進位制 0011 1000 0000 0000 0000b
去掉十個0 單位就成了kb,然後就是2的5,6,7次方求和 得到224KB
【輸入輸出系統】:
DMA方式:
無需CPU介入,流程:向CPU申請DMA傳送,獲取CPU允許後,DMA控制器接管系統匯流排的控制權;過程中不需要CPU結束回到CPU控制
【匯流排系統】:
- 內部匯流排: 用於晶片一級的互聯,分為晶片內匯流排和元件級匯流排。晶片內匯流排用在整合多晶片,元件級匯流排用於一塊電路板內元器件的連線
- 系統匯流排:外掛板一級的互聯,用於構成計算機各組成部分(CPU,記憶體,介面)
- 外部匯流排:又稱通訊匯流排,用於裝置一級的互聯,通過該匯流排與其他裝置進行資訊與
【加密演算法】:
- 非對稱加密的演算法中使用了 私鑰和公鑰,私鑰用於解密和數字簽名,公鑰用於加密和認證證書的真實性
- 數字證書:CA組織會給使用者頒發數字證書, 由CA的私鑰進行建立數字證書,數字簽名,然後接收方使用CA的公鑰來檢查其真實性和數字簽名
(檢查檔案內容是否被篡改)
【補碼】:
一般用於浮點數的階碼,簡化計算機運算部分設計,因為 符號位可以運算,減作加處理
【訪問方式】:
定址方式訪問: 直接 , 順序 , 隨機
內容方式訪問:相聯儲存器
【2.程式設計語言】
【基本概念】:
編譯和解釋:
- 編譯:詞法分析,語法分析,語義分析,中間程式碼生成,程式碼優化,生成目的碼(組合語言/機器語言)
- 解釋:分析部分:詞法分析,語法分析,語義分析,然後把源程式翻譯成中間程式碼(常用逆波蘭表現形式,樹,字尾式,四元,三元式)
解釋部分:對中間程式碼進行解釋執行
KMP模式匹配演算法:
求解模式串 p 中的next 函式值
next={
0 , j=1;
max{k|1<k<j,'p 1 p 2……p k-1 '='p j-k+1 …… p j-1'};
1 ,其他情況(沒有符合要求的k);
}
假設 p 為 abaabaca 那麼函式值為01122341
【答案的解釋】:
j: 1 2 3 4 5 6 7 8
p: a b a a b a c a
next(j): 0 1 1 2 2 3 4 1
【自己的理解】:
當 j=1 函式值必然是0
當j=2 函式值必然是1
當j=3 比較p1 和 p2 相同就是2 不同就是1
當j=4 比較p1-> 和 <-p3 有幾個相同k就是幾個再加1,沒有就是1
當j=n 比較p1-> 和 <-p n-1 假設有m個相同 那麼k=m+1,沒有則k=1
引數傳遞(值傳遞和引用傳遞):
高階程式設計語言翻譯流程:
詞法分析,語法分析,詞義分析,中間程式碼重構,目的碼生成(組合語言,機器語言)
高階程式設計語言使用的語法一般是 上下文無關法
文法分析:
是編譯的一個理論支援
推導和直接推導————規約和直接規約 相對應的
文法G的開始符號推匯出一串字串,直到終結符,稱為句型。只含終結符的句型是一個句子
由開始符號,推匯出的所有句子的全體是語言
【考點】:正規式和DFA或NFA的轉換
DFA:有限自動機
NFA:無限自動機
自動機是用來讀取輸入的字串並做對應的操作
自動機 有初態和終態,初態到終態的任意一條路徑就是一個完整的字串
【3.作業系統】
定義
分類
- 批處理
- 實時
- 嵌入式
- 個人
- 網路
- 分散式
特性
- 併發
- 共享
- 虛擬性
- 確定性
資源管理
- 檔案管理
- 儲存管理
- 處理機管理
- 裝置管理
- 作業管理
程序管理
- 同步是程序間的直接制約—:程序合作的等待問題
- 互斥是程序間的間接制約—:程序競爭一個資源(程序獨佔)
PV操作:
- 實現程序同步,互斥的常用方法
- P操作,S:=S-1 如果S>=0,執行P操作的執行緒繼續執行,否則阻塞
- V操作,S:=S+1 如果S>0,執行S操作的執行緒就會繼續,否則從阻塞佇列中喚醒一個執行緒
程序資源圖(分辨死鎖,執行緒競爭)靈活辨別是否是安全序列
- 臨界資源值 = 執行緒數 × ( 最大需求-1) + 1
- 不發生死鎖的臨界:即有一個不是阻塞,其他的執行緒都是隻差一個資源(阻塞等待中)
儲存管理
- 分頁
- 分段
- 頁段混合
處理機
- 圖靈機裡:有限和無限的區別就是後繼碼是否唯一,唯一就是有限
- 要特別注意表示式的寫法,一般這種題目看讀取字元結尾就可以快速選擇答案
裝置管理
- 磁碟讀取
- SCAN 掃描演算法 磁頭按當前運動方向,至最大/最小再逆序折回讀取(一來一返)
- CSCAN 單向掃描演算法 磁頭按當前運動方向,至最大/小,立馬到最小/大又按初始的運動方向進行讀取(兩個單向)
- 注意:當柱面是一樣的時候,比較扇區的順序
檔案管理
位檢視儲存
- 概括:用某號物理塊除以字長得到第幾個字,容量就要再除以物理塊的大小再除字長
- 系統字長x,物理塊大小y,那麼第z號物理塊需要第z/x個字來描述(注意是字長的區間)。容量為w(G) 需要 w×1024/y/x個字來表示
檔案索引
- 分直接索引項,一級間接索引項,二級間接索引項
- 公式
- a位直接,b位一級,c位二級,資料塊和索引塊大小是dk,每個地址項是e位元組,求邏輯塊號X區間:
- 直接 地址索引:0 <= X < a(0開始計數)
- 一級 地址索引:a <= X < d×1024/e×b+a
- 二級 地址索引:d×1024/e×b+a <= X < (d×1024/e)^2×c+d×1024/e×b+a
- a位直接,b位一級,c位二級,資料塊和索引塊大小是dk,每個地址項是e位元組,求邏輯塊號X區間:
- 求指向的記憶體大小:
- 直接:直接數×資料塊大小 a×d
- 一級:一級數×索引塊大小/地址項大小×資料塊大小 b×d/e×d
- 二級:二級數×(索引塊大小/地址項大小)^2 ×資料塊大小 c×(d/e)^2×d
路徑問題
- 全檔名,從根目錄開始加上檔名 eg: \d\d\f.txt
- 相對路徑從當前路徑(當前工作目錄)開始的路徑 eg:d\
- 絕對路徑從根目錄開始的路徑不含檔名 eg: \d\d\
作業管理
- 排程級別:高階排程(作業排程),中級排程(交換排程),低階排程(程序排程)
- 優先順序排程演算法:將給出的圖看成樹,左上為根。同層就是併發,父子關係就體現了優先順序
【4.軟體工程基礎知識】
軟體生存週期
- 可行性分析
- 需求分析:功能,效能,資料,介面
- 概要設計:分模組,定功能和關係,詳細的資料庫設計,資料結構設計
- 詳細設計:模組的詳細演算法設計,資料庫的物理設計
- 程式編碼:
- 軟體測試
- 維護:糾錯維護,改錯維護
軟體生存週期模型
- 瀑布模型:線性順序模型,適用於對需求有完善了解,開發週期快
- 原型/演化模型:通過原型來不斷演化
- 螺旋模型:綜合了瀑布和原型的優點,增加了風險分析
- 增量模型:先發布核心產品,然後根據需求不斷增量,除錯,直到完善
- 噴泉模型:面向物件開發過程,以使用者需求為動力,以物件為驅動的模型,使開發具有迭代性和無間隙性
- V模型:瀑布模型演化而來,強調了軟體開發過程中若干個測試級別。
專案管理
- 啟動
- 度量
- 估算
- 風險分析
- 進度安排
- 追蹤控制
成本估算
- 估算策略
- 自頂向下 先確定整體時間,再按模組,分配時間
- 自底向上 按模組分析需求時間,再向上累積得出全部時間
- 差別估算 和類似專案比較
- 估算方法
- 專家估算 :專家一人確定
- 類推估算 :自頂向下是類似專案總體引數對比,自底向上是兩個相似的功能單元對比
- 算式估算 :上面兩種帶有主觀性,這個是為了消除主觀性
- 成本估算模型
- IBM 基於60專案的靜態模型
- Putnam(普特南)模型:動態多變數模型
- COCOMO模型:
- 基本COCOMO模型 靜態單變數模型
- 中級COCOMO模型 靜態多變數模型
- 詳細COCOMO模型 將系統分為系統,子系統,模組三層次,
包含了中級並考慮了軟體開發流程中每一步的成本驅動影響
- 風險分析
- 風險識別 :
- 風險評估 :成本,進度,效能是三種典型的風險參考水準
- 風險控制 :
- 風險策略管理
- 避免風險
- 控制風險
- 分散和中和風險
- 轉移風險
- 進度管理
- Gantt 甘特圖:描述了任務的開始和結束,並行關係,但是不能體現依賴關係
- PERT技術:
- 關鍵路徑是耗時最長的路徑
- 任務鬆弛時間 = 最遲開始時間 - 任務最早開始時間
最遲開始時間 = 從終點往回推,用最長時間(關鍵路徑耗時)減去終點到該任務的時間
- 任務的延時,推遲問題。應當計算由於各種原因引起的推遲路徑,計算出總時間,減去原時間,不能只看一段。
- 文件管理
- 高質量文件
- 針對性 分清閱讀物件,來適應他們需求
- 精確性 確切的語句,不能有二義性
- 清晰性 簡明,加以圖表
- 靈活性 各個軟體專案,規模複雜性有很多差別,但是能一律看待
- 高質量文件
人員管理
- 主程式設計師組 :住程式設計師,後備,資料員,若干程式設計師
- 無主程式設計師組 :相互平等,調動積極性,但是權責問題不明確
- 層次式程式設計師組 :組長,高階程式設計師,普通程式設計師。適合大型專案
軟體過程管理
- UP的結構
- 初始階段: 建立商業案例,確定專案邊界
- 精化階段: 分析問題領域,建立體系結構基礎
- 構建階段: 剩餘的構建和功能開發,整合為產品,此時是beta版
- 移交階段: 測試,基於反饋調整,交付系統
- UP的結構
敏捷開發方法
- 極限程式設計
- 將專案細分小模組,迭代編寫,
- 先測試再程式設計
- 結對程式設計
- 水晶法 : 每一個專案都要有一套不同的策略和方法
- 並列爭求法 :該方法使用迭代的方法,將30天一次的迭代,稱為衝刺
- 自適應軟體開發方法:
- 1.一個使命作為指導
- 2.特徵視為客戶的關鍵點
- 3.過程中的等待很重要
- 4.變化視為實際的調整,不看做改正
- 5.確定的交付時間,迫使開發人員考慮每一個版本的關鍵需求
- 6.風險也在考慮範圍內
- CMM 能力成熟度模型
- 五個級別:
- 初始級
- 可重複級
- 已定義級
- 定量管理級
- 優化級
- CMMI 的任務是將已有的CMM模型結合在一起,構造為整合模型
- 五個級別:
- 程式流程圖
- 簡單路徑:個人看法,看到選擇結構就加一,初始是一個路徑(輸入到輸出)
- McCabe度量法:V(G)=m-n+2p
- V(G):路徑複雜度
- m:所有流程線
- n:所有節點數
- p:該有向圖的強聯通分量(圖是有幾塊組成)
- ISO/IEC軟體質量模型中,
- 可靠性:
- 成熟性,容錯性,易恢復性,相容性
- 可維護性:
- 易分析性:為 判定軟體修改所需的努力
- 易改變性:進行修改,適應環境變化所需的努力
- 穩定性:與修改造成的風險後果相關
- 易測試性:與確認修改所需的努力。
- 可靠性:
【5.系統開發與執行】
軟體體系結構風格分類
- (1)資料流風格:批處理序列;管道/過濾器
- (2)呼叫/返回風格:主程式/子程式;面向物件風格;層次結構
- (3)獨立構件風格:程序通訊;事件系統
- (4)虛擬機器風格:直譯器;基於規則的系統
- (5)倉庫風格:資料庫系統;超文本系統;黑板系統
結構化分析和設計
- 結構化分析方法: 是基於資料流的方法
- 資料流圖 DFD
- 資料流:箭頭表示,資料的流向
- 加工:圓或圓框,對資料進行處理的單元接受輸入資料,產生輸出
- 資料儲存:資訊的靜態儲存
- 實體:矩形,分資料來源(源頭),資料潭(終點)
- 資料字典
- 是以準確的方式定義所有資料流和資料儲存,含三類:資料流條目,資料儲存條目,資料項條目
- 加工邏輯描述
- 也稱 小說明,用來描述加工的,加工邏輯即 做什麼
- 資料流圖的設計原則
- 資料守恆原則:任何一個加工,其所有輸出的資料都是從輸入資料流中獲得
- 守恆加工原則:對同一個加工來說,輸入輸出的名字必須不同,即使組成成分是一樣的
- 每一個加工必須有輸入流和輸出流
- 外部實體和資料儲存之間,自身也是,!不能有資料流!
- 父圖與子圖平衡原則:父圖子圖的輸入輸出流,必須一致,該原則不存在於一張圖
- 資料流必須和加工有關,必須經過加工
- 資料流圖的頂層資料流圖,描述了系統的輸入和輸出,只有一個加工表示系統
【模組】
模組獨立:
- 耦合:模組之間的緊密程度
- 聚合:模組內部各元素之間聯絡的緊密程度
內聚型別(由高到低)
- 功能內聚:完成一個單一的功能,各個部分缺一不可
- 順序內聚:處理元素相同,而且必須順序執行
- 通訊內聚:所有處理元素集中在一個數據結構的區域上
- 過程內聚:與處理元素相關,而且必須按待定的次序執行
- 瞬時內聚:所包含的任務必須在同一時間間隔內執行(初始化模組)
- 邏輯內聚:完成邏輯上相關的一組任務
- 偶然內聚:完成一組沒有關係或鬆散的任務
耦合型別(由低到高)
- 無直接耦合:兩個模組沒有任何關係
- 資料耦合:兩個模組間只是引數傳遞簡單資料
- 標記耦合:兩個模組都只和一個資料結構有關
- 控制耦合:兩個模組間傳遞的資訊中有控制資訊
- 公共耦合:兩個或多個模組,通過引用一個公共區的資料(資料結構和變數)而發生作用
- 內容耦合:最高的耦合度
- 當一個模組使用另一個模組內部的控制和控制資訊等資料;
- 一個模組直接轉移到另一個模組;
【測試方法】
白盒測試:由低到高
- 語句覆蓋
- 氣泡排序只要一個用例就可以達到語句覆蓋
- 判定覆蓋
- 條件覆蓋
- 判定/條件覆蓋
- 條件組合覆蓋
- 路徑覆蓋: 使用 McCabe度量法 計算路徑複雜度,一個路徑一個測試用例。
- 但是折半查詢最少兩個,和流程圖無關,因為結果是互斥的
- 語句覆蓋
黑盒測試:
- 等價類劃分:將所有可能輸入的資料劃分為若干子集,然後從每一個子集中選取少數具有代表性的資料作為測試用例
- 邊界值分析
- 錯誤猜測
- 因果圖
- 迴歸測試:修改了舊程式碼後,重新測試,確認修改沒有引入其他錯誤或導致原有程式碼錯誤
- 軟體測試步驟:。。。。。。
- 單元測試,整合測試,確認測試,系統測試
- 軟體維護:
- 改正性維護:修復錯誤 約佔20%
- 適應性維護:適應環境 約佔25%
- 完善性維護:增加功能,提高效能 約佔50%
- 預防性維護:為以後增加功能準備
【6.網路與多媒體基礎知識】近幾年沒有考題
SO/OSI七層網路體系結構 1979年建立
- 應用層
- 表示層
- 會話層
- 傳輸層
- 網路層
- 資料鏈路層
- 物理層
TCP/IP協議:
- 應用層
- 傳輸層
- IP層
- 網路介面層:包含了OSI模型中的資料鏈路層,物理層
【網路協議】:
- LAN模型:IEEE802區域網標準,定義了物理層和資料鏈路層,資料鏈路層又分兩個子層
- 1. 物理層
- LLC : 提供兩種控制型別,面向連線,非連線
MAC : 控制對傳輸介 * TCP/IP協議簇質的訪問
2. 網路介面層協議:負責管理為物理網路準備資料
- IP(網路層):網路之間互聯的協議
- ARP/RARP(網路層):硬體MAC到IP/IP到硬體MAC的轉換協議
- ICMP(網路層):網際控制報文協議
- TCP(傳輸層):傳輸控制協議 ,可靠的面向連線的服務
- UDP(傳輸層):使用者資料包協議 ,不可靠的面向無連線的
- 應用層協議:NFS,Telnet,SMTP,DNS,SNMP,FTP
【硬體裝置】
物理層互聯裝置
- 中繼器 Repeater : 常用於兩個網路節點之間物理訊號的雙向轉發工作
- 集線器 Hub :對接收到的訊號進行再生整形放大,以擴大網路傳輸距離(是相當於將各個主機直接聯通,在邏輯上構成了一個共享的匯流排,所以就構成了一個廣播域,一個衝突域)
資料鏈路層互聯裝置
- 網橋 Bridge :擴充套件網路的距離和範圍,提高網路效能,可靠性,安全性
- 交換機 Switch :基於mac地址的識別,有記錄mac地址的地址表(為通訊的兩臺主機建立專用的通道,所以是交換機的沒一個介面都是自己的一個衝突域,所有介面和主機構成了一個廣播域)
網路層互聯裝置
- 路由器 Router :連線多個邏輯上分開的網路()
應用層互聯裝置
- 閘道器 GateWay :當連線不同型別,並且協議差別大的網路時,要選用閘道器裝置 功能:協議轉換,資料分組。
- DHCP 客戶端可以從DHCP伺服器,獲得DHCP伺服器的IP地址,DNS伺服器的IP地址,預設閘道器的IP地址,但是不能獲得WEB伺服器的IP地址。
- NAT橋接:內網主機發送資料時,NAT將源IP從內網轉換成外網址。接受資料時將目的IP(外網)轉換成內網網址
- 安全認證:
- PPP的NCP可以承載多種協議的三層資料包
- PPP使用LCP控制多種鏈路的引數(建立,認證,壓縮)
- PPP中的安全認證型別:
- pap認證 是通過二次握手建立認證(明文不加密)
- chap認證 是挑戰握手認證,三次握手建立認證(密文采用MDS加密)
- PPP的雙向認證 採用的是chap的主驗證風格
- PPP的加固認證 採用的是兩種 (pap chap)同時使用
- 無線介面標準 :國際電信聯盟,在2000年5月 確定W-CDMA,CDMA2000,TDS-CDMA三大主流無線介面標準
- 中國獨自制定的3G標準是 TD-SCDMA
- IP地址
- IP地址全0是指任意網路,全1是指當前子網的廣播地址
【網路安全】
- 防火牆技術分類
- 包過濾型防火牆
- 代理伺服器型防火牆
- 監測型防火牆
- 防火牆體系結構
- 包過濾路由器結構
- 雙穴主機結構
- 遮蔽主機閘道器結構
- 被遮蔽子網結構
- 防火牆的工作模式
- 透明模式
- NAT模式
- 路由模式
- 防火牆的安全策略
- 禁止外部網路ping內部網路
- 禁止外部網路非法使用者訪問內部網路和DMZ區應用伺服器
- 禁止外部網路使用者對內部網路HTTP、FTP、TELNET、TRACEROUTE、RLOGIN等埠訪問
- 禁止DMZ區的應用伺服器訪問內部網路
- 允許外部網路使用者使用DMZ區的應用服務:HTTP,HTTPS,POP3
- 允許DMZ區內的工作站與應用伺服器訪問Internet
- 允許內部企業使用者訪問DMZ區的應用服務:DNS,POP3,SMTP,HTTP,HTTPS,FTP等
- 允許內部企業網路訪問或通過代理訪問外部網路
模擬和數字訊號的轉換:A/D是模擬到數字和D/A 數字到模擬
聲音數字化:
- 取樣:把時間連續的模擬訊號 轉換成時間離散幅度連續的訊號
- 量化:把幅度上連續取值的每一個樣本,轉換成離散值表示,量化也稱A/D轉換
- 編碼:資料壓縮和編碼
- 圖形和影象
- 色彩三要素:亮度,色調,飽和度
- 三基色原理:紅 綠 藍
- 彩色空間:
- RGB彩色空間:
- CMY彩色空間:
- YUV彩色空間:
- 圖形資料的表示:
- 向量:用指令描述構成一幅影象
- 點陣圖:使用畫素點來描述
- 影象的屬性:
- 解析度:畫素數目
- 影象深度(值域):確定了影象的每個畫素可能有的顏色數,或者確定灰度影象的每個畫素可能有的灰度級數。 它決定了彩色影象中的可能出現的最多顏色數,或者灰度影象中的最大灰度等級
- 真彩色和偽彩色:真彩色是畫素值中存有RGB三個分量值,偽彩色是將畫素值作為地址索引,在彩色查詢表中查詢這個畫素實際的RGB值
- 影象的壓縮編碼:有損(JPEG)和無失真壓縮
- 影象檔案格式:
- BMP:windows採用的影象檔案格式,採用位對映儲存格式,不壓縮
- GIF:無失真壓縮演算法,可以顯示簡單動畫
- TIFF:
- PCX:
- PNG:作為GIF的替代品而開發的,壓縮採用的是LZ77無失真壓縮演算法
- JEPG:有失真壓縮演算法,壓縮比例大
- Targe:
- WMF:只在windows中使用,儲存的是函式呼叫資訊
- EPS:
- DIF:AutoCAD中常採用
- 影象的儲存
- 例題:使用150 DPI掃描一幅3×4英寸的圖,原始24位的影象佔用多少位元組
- 150DPI 表示每英寸150畫素點 所以 150×150×3×4×24/8 得到佔用位元組數
- 例題:使用150 DPI掃描一幅3×4英寸的圖,原始24位的影象佔用多少位元組
動畫與視訊
- 彩色電視的制式:NTCS和PAL,前者用於日美加拿大,墨西哥等,後者用於中國,歐洲,中東
- 視訊檔案格式:GIF,FLC/FLI,AVI,.MOV/QT
- 視訊壓縮標準:H.261,JEPG,MPEG,DVI
媒體型別:
- 感覺媒體:使人感覺得到的媒體,音樂,影象等
- 表示媒體:為加工處理傳輸感覺媒體而來的一種媒體,例如文字編碼,影象編碼,聲音編碼
- 表現媒體:進行資訊的輸入輸出的媒體:鍵盤,滑鼠,掃描器,話筒
- 儲存媒體:儲存表示媒體的物理介質,硬碟,光碟
- 傳輸媒體:電纜,光纜等
- 通常沒有特殊說明的情況下,資訊媒體就是指感覺媒體
【7.資料庫技術,基礎】
關係模式(不是指表,但是是包含了表,在表的層次以上)
- 一個關係模式應該是五元組 R(U,D,DOM,F)
- R 符號化的元組語義
- U 一組屬性
- D 是屬性組U中的屬性所來自的域
- DOM 為屬性到域的對映
- F 為屬性組U上的一組資料依賴
- 一般使用三元組 R
【資料依賴】
- 資料依賴是一個關係內部屬性與屬性之間的一種約束關係
- 1.函式依賴 FD
- 若U的子集X,Y,X和Y形成唯一標識,X函式確定Y,Y函式依賴於X。記X -> Y
- 非平凡的函式依賴:X->Y 但是Y不屬於X
- 平凡的函式依賴:X->Y Y屬於X
- X 稱為該函式依賴的決定屬性,決定因素
- X->Y 並 Y->X 則 X<–>Y
- 2.多值依賴 MVD
- 1.1 完全函式依賴:X->Y 並且X的真子集D 都存在子集 D不能->Y。
- 1.2 部分函式依賴:X->Y 但是Y不完全函式依賴於X 。
- 1.3 傳遞函式依賴:X->Y(Y不屬於X),Y不能->X, Y->Z(Z不屬於Y)則稱Z對X傳遞函式依賴
【碼】
- 設 K是R
【正規化】 應用於關係模式R
閉包
- 在關係模式R
模式分解
- 具有無損連線性(粗略概述:不減少欄位和改變元組)
- 要保持函式依賴(子模式裡滿足依賴關係)
- 既要保持函式依賴性,又要具有無損連線性
- 通過使用模式分解能提高關係模式能滿足的正規化等級
【8.演算法與資料結構】
- 考點:
- 排序演算法,查詢演算法,常用演算法,二叉樹,圖,模式匹配,線性結構,棧,佇列,時間複雜度
串的模式匹配:
- Brute-Force演算法
- KMP演算法
堆串的問題
- 字串分串名,串值
- 串名使用符號表儲存
- 串值使用堆串儲存方法
- 字串分串名,串值
迴圈佇列求下標記得減去總長再對總長取餘
- 二叉樹的轉換:
【9.面向物件技術】
- 面向物件 = 物件+分類+繼承+用訊息通訊
- 物件:物件名,屬性,操作
- 特性:清晰的邊界,良好定義的行為,可擴充套件性
- 類:物件的抽象
- 訊息:物件之間通訊的一種構造(物件呼叫方法)
三大特性
- 繼承:可分單重繼承,多重繼承
- 多型:
- 引數多型:指同一個物件,函式,過程能以一致的形式用於不同型別
- 包含多型:子型別化,即一個型別是另一個型別的子型別
- 過載多型:同一變數被用來表示不同的功能
- 強制多型:通過語義操作,把一個變元的型別加以變換,以符合函式要求,不強轉就會使得函式錯誤
- 封裝:目的是將定義和資料分離,保護資料不被物件使用者直接存取
- 重置(覆蓋):指在子類中改變父類中既有函式行為的操作,通過一種動態繫結是的子類繼承父類的前提下,用適合自己要求的實現去覆蓋父類的實現
- 過載:子類保留父類的函式名,但使用不同型別的引數
- 動態繫結:以函式呼叫和函式本體的關聯為基礎,繫結動作在執行期才根據物件型別執行。也稱後期繫結(應該就是根據引數來判斷例項化什麼物件或執行對應的方法)
- 靜態繫結:編譯過程中,將函式呼叫與響應呼叫所需的程式碼結合的過程
關聯關係:
- 泛化 : 類和類之間的繼承關係,介面之間的繼承關係,類和介面的實現關係,泛化關係是從子類指向父類
- 關聯 : 當一個物件的例項和另一個物件的例項存在固定的對應關係時,關聯體現的是兩個類或者類和介面之間語義級別的一種強依賴關係,可以單或雙向。
- 聚合 : 體現的是整體與部分的關係,整體與部分之間是可分離的,他們各自有各自的宣告週期,部分可以屬於多個整體物件,也可以為多個整體物件共享
- 組合 : 也稱強聚合,整體和部分是不可分的,整體的生命週期結束也就意味著部分的生命週期結束
面向物件分析(OOA):
- 1.分析問題域,建立用例模型。
- 2.發現和定義物件和類
- 3.識別物件的內部特徵
- 4.識別物件的外部聯絡
- 5.識別物件之間的互動
- OOA模型(面向物件分析):
- 5個層次:
- 主體層
- 物件類層
- 結構層
- 屬性層
- 服務層
- 5個活動:
- 標識物件類
- 標識結構
- 定義主題
- 定義屬性
- 定義服務
- 5個層次:
OOD模型(物件建模技術):
- OOA的五個層次和五個活動貫穿在OOD中
- 四個活動構成:
- 設計問題域部件:OOA的結果就是OOD的問題域部件
- 設計人機互動部件
- 設計任務管理部件:識別事件驅動任務
- 設計資料管理部件:目的是隔離資料管理方案對其他部件的影響
【OMT】
- OMT模型
- 物件模型
- 動態模型
- 功能模型
- 模型關係
- OMT步驟
- 分析:
- 系統設計:
- 將系統分解成子系統
- 標識問題中固有的併發性
- 將子系統分配到處理器和任務
- 選擇資料儲存管理的手段
- 處理對全域性資源的訪問
- 選擇軟體中控制的實現
- 處理邊界條件
- 設定折中的優先順序
- 物件設計:設計者必須履行一下步驟:
- 綜合考慮三個模型以獲得類上的操作
- 設計實現操作的演算法
- 優化資料訪問路徑
- 實現與外部互動的控制
- 調整類結構以增加繼承
- 設計關聯
- 確定物件表示
- 將類和關聯包裝到模組中
- 實現:
- OMT模型
- 【UML】
- 事物
- 結構事物:模型的靜態部分,描述概念或物理元素,例如:類,介面,協作,用例,主動類,構件,節點
- 行為事物:UML模型的動態部分。例如:互動(訊息,有向線段),狀態機(物件或互動的狀態,圓角矩形)
- 分組事物:模型分解組成的“盒子”,例如:包(概念性,僅存在開發階段,資料夾圖形)
- 註釋事物:UML的解釋部分,例如:註解
- 檢視
- 分為三個檢視域:結構分類,動態行為,模型管理
-
- 類圖(Class Diagram):展現了一組物件,介面,協作以及之間的關係,作為靜態檢視,還可以包含依賴,關聯,泛化,實現,註解,約束關係等
-
- 用例圖(Use Case Diagram):展現了一組用例,參與者以及兩者的關係。對系統的靜態用例檢視建模時,可以分兩種方法:對系統的語境建模,對系統的需求建模
-
- 構件圖(Component Diagram):展現了一組構建之間的組織和依賴,通常將構建對映一個或多個類、介面或協作
-
- 部署圖(Deployment Diagram):體系結構的靜態實施檢視,與構件圖相關,通常一個節點包含一個或多個構件,類似包圖
-
- 狀態圖(statechart Diagram):展現了一個狀態機,它由狀態,轉換,事件和活動組成,一般是分析一個物件,強調物件行為的事件順序。
- 狀態圖中的狀態包括狀態名、內部活動、內部轉換、入口和出口動作等部分
- 活動圖(activity Diagram):特殊的狀態圖,展現了系統從一個活動到另一個活動的流程
-
- 互動圖 :順序圖和協作圖均被稱為互動圖
- 順序圖強調訊息時間序列
- 系統的動態方面建模
-
- 物件圖 (Object Diagram):靜態的例項,一組物件以及它們之間的關係 一般包括物件和鏈
- 事物
設計模式【主要分三類】
1.建立型設計模式
- 抽象了例項化過程,它們幫助一個系統獨立於如何建立,組合和表示它的那些物件。
- 一個類建立型模型使用繼承改變被例項化的類,而一個物件建立型模型將例項化委託給另一個物件
- 將一組固定行為的硬編碼轉移為定義一個較小的基本行為集,這些行為可以被組合成任意數目的更復雜性的行為。這樣建立有特定行為的物件要求的不僅僅是例項化一個類
~
- 生成器 Builder,是一種物件構建模式,模式通常包含Builder,ConcreteBuilder。Director 和 Product四部分
-
~
2.結構型設計模式
介面卡(Adapter)模式,橋接(Bridge)模式,組合(Compontent)模式,代理(Proxy)模式,享元(Flyweight)模式,Facade模式,裝飾(Decorator)模式,命令(Command)模式,狀態(State)模式
- 結構型設計模式涉及如何組合類和物件以獲得更大的結構
- 結構型模式採用繼承機制來組合介面或實現。
- 結構型物件模式不是對介面和實現進行組合,而是描述瞭如何對一些物件進行組合,從而實現新功能
- Composite模式
它將物件組合成樹形結構以表示“部分-整體” - Flyweight模式
該模式為共享物件定義了一個結構,強調物件的空間效率,自由共享 Facade模式(外觀模式)
描述瞭如何用單個物件表示整個子系統(外部與其內部通訊必須通過一個統一的物件進行互動),模式中的facade用來表示一組物件,
外觀設計模式提供一個高層次的介面是的子系統易於使用。
適用情況:1.為複雜的子系統提供一個簡單的介面
2.客戶程式與抽象類的實現部分有很大依賴性
3.構建一個層次結構的子系統時,適用外觀模式定義子系統每層的入口Bridge模式 將物件的抽象和實現分離,從而可以獨立的改變他們。
- Decorator模式
描述如何動態地為物件新增職責,模式採用遞迴方式組合物件,從而允許新增任意多的物件職責。
3.行為設計模式
- 行為設計模式涉及演算法和物件間職責的分配,行為模式描述物件和類的模式以及其通訊模式
- 行為模式使用繼承機制在類間派發行為
【常見設計模式】:
- 介面卡 模式(Adapter):介面卡是的一個介面與其他介面相容,從而給出了多個不同介面的同一抽象。一般分類結構和物件結構兩種:
- 類介面卡:介面卡類繼承被適配類,實現某個介面,在客戶端類中可以根據需求來建立子類
- 物件介面卡:介面卡不是繼承,是使用直接關聯,或稱委託方式
- 中介者 模式:包裝了一系列物件相互作用的方式,使得物件間的相互作用是獨立變化,但是與中介者緊密聯絡
- 觀察者 模式 Observer:一個目標物件管理相依於它的管理物件,並且在它本身的狀態發生改變時發出通知,這種模式常用來實現事件處理系統。(也稱釋出-訂閱,模型-檢視,源-收聽者模式)
- 觀察者(介面):更新資訊,展示資訊,給 被觀察者(形參) 註冊上觀察者
- 被觀察者(介面):發出更新通知(遍歷觀察者集合並註冊),當自身發生改動時發出通知訊息
- 單例模式 Singleton 一個類只有一個例項易於外界訪問
- 裝飾器模式 建立一個新類為某一個類動態新增新功能或增強原有的功能,避免程式碼重複或具體子類的數量增加
- 策略模式 優點:靈活新增同一問題的不同解決方案
- 狀態模式 允許物件在內部狀態時變更其行為,並且修改其類:
- 環境類(Context):定義客戶感興趣的介面,維護一個子類的例項,這個例項就是當前狀態
- 抽象狀態類(State):定義一個介面以封裝與Context的一個特定狀態相關的行為
- 具體狀態類(concreteState):每一子類實現與Context的一個狀態相關的行為
- 例題:紙巾售賣機:有四個狀態!
- 【狀態圖】
- 【類圖】
- 例題:TCP連線狀態:
- 命令模式 command:
- 行為請求者 與 請求實現者 之間 緊耦合 的關係
- 將一個請求封裝成一個物件,從而可用不同的請求對客戶進行引數化,支援可撤銷的操作
- 下例:使用了介面來實現多型,子類是多個的,方法同名並功能多樣的
- 程式碼複用好,程式碼結構清晰【引數類表最好不要出現標誌變數,最好分離出另一個方法】
- 橋接模式 : 便於擴充套件,實現與抽象分離(解耦)對一個模組修改不影響別的模組
- 抽象工廠模式 : 提供一個建立一系列相關例項相互依賴的物件。
- 當一個系統要獨立於它的產品的建立,組合和表示時
- 當一個系統要由多個產品系列中的一個來配置時
- 當需強調一系列相關的產品物件的設計以便進行聯合使用時
- 想提供一組物件而不顯示他們的實現過程,只顯示他們的介面
- 原型模式 : 物件建立模型: 允許一個物件建立另一個可定製的物件,封裝例項化細節。
- 實現Cloneable介面(Java自帶介面),重寫clone方法(在這裡例項化物件,new或反射,按需求來修改)
- 該例,組合關係,在對方使用clone來代替構造器來例項化物件,並做好了繫結操作,大量減少程式碼量
- 生成器模式:
【10.標準化與智慧財產權】
標準化
- 標準分類
- 按適用範圍:國際標準,國家標準,行業標準,企業標準,專案標準
- 按性質分類:技術標準,管理標準,工作標準
- 物件和作用:基礎標準,產品標準,方法標準,安全標準,衛生標準,環境保護標準,服務標準
- 法律約束力:強制性標準和推薦標準(一般是加上T)
- 智慧財產權:分兩類
- 工業產權:
- 專利,商標,廠商名稱,服務標記,實用新型,工業品外觀設計,原產地名稱,制止不正當競爭等內容
- 著作權:指作者對其創作的作品享有的人身權和財產權。人身權包括髮表權,署名權,修改權和保護作品完整權等;財產權包括作品的使用權和獲得報酬權
- 智慧財產權的特點:
- 無形性,雙重性,確認性,獨佔性,地域性,時間性
- 工業產權:
- 計算機軟體著作權
- 主體和客體:主體是指享有著作權的人,客體是計算機程式及其相關文件
- 受保護的條件
- 獨立創作:開發者獨立開發完成,複製和抄襲的作品不得獲得著作權
- 可被感知:作品應當是作者的創作思想在固定載體上的一種實際表達
- 邏輯合理
- 著作權的權利:
- 計算機軟體著作人身權:發表權和開發者身份權
- 財產權:使用權,複製權,修改權,發行權,翻譯權,註釋權,資訊網路傳播權,出租權,使用許可權和獲得報酬權,轉讓權
- 軟體合法持有人的權利:
- 根據需要把軟體裝入計算機等儲存裝置中;根據需要進行必要的複製;為了防止複製品損壞,製作備份複製品;為了把該軟體安裝於計算機做的必要的修改
- 計算機軟體著作權的保護期:自開發完成之日計算 50年
【11.專業英語】
【12.資料流圖】
- 主要 看細心,業務邏輯不能分析錯誤
- 要看清楚所有出現的業務名詞或 對儲存的讀寫 不能有一個遺漏
- 確定資料流的起點和終點,一般儲存都是叫做**表 子圖裡 儲存必須要有讀和寫 缺一不可
- 注意實體是不能寫錯的,一般是人(某職位)
【13.UML設計與分析】
- 題目套路:
- 第一題:讀懂題目,搞定邏輯和業務流程,填補類圖,填多重度等(類模型看引數及關聯推斷類名和關係(特殊的:聚合,泛化),切記不能隨便填類名)
- 第二題:填流程圖,用例圖(突破口:特殊關係:泛化,組合),等
- 第三題:優化,分析,模式優化,新增功能,模式等(概念題)
注意 書寫規範,看清題意
候選類的選擇 使用了良性原則:
- 不會在實際中造成危害的依賴關係,都是良性依賴
- 候選類的刪除 使用了介面隔離原則(ISP):
- 不應該強迫類實現依賴於他們不同的方法(不需要的方法不實現)
圖形元素講解
- 用例圖:
- 訊息傳遞:實線箭頭
- 關係(類圖)
- 依賴:虛線箭頭 (線上方可能註明:include-包含,extend-擴充套件,bind-繫結,friend-友元)
- 關聯:實線(雙向)實線箭頭(單向) 看成資料通道
- 聚合:空心菱形實線: 物件做另一個物件的成員 菱形是整體方
- 組合:實心菱形實線:
- 泛化:實線空心箭頭(可理解為繼承)
- 實現:虛線空心箭頭
- 多重度:考慮時要從對方的角度考慮自己的數量應該是什麼範圍
- 【0..1】 : 0或1
- 【 1 】 :只有一個
- 【0..*】 : 0或更多
- 【 * 】 : 0或更多
- 【1..*】 :1個或更多
外鏈部落格:
- 一.用例圖_1 || 用例圖_2
- 二.類圖_1 || 類圖_2
- 三.序列圖
- 四.狀態圖
- 理解九種圖
狀態圖:
UML概念圖
- 有點像ER圖,也是描述了實體之間關係(有一對多等關係),有面向物件特有的關係
【14.資料庫設計】
- 考試套路:
- 1.補全ER圖
- 2.補全關係模式指明主外來鍵
- 3.新增一個實體,或修改關係模式。或者優化
- 考點:
- ER圖的補充,主外來鍵的確定,業務關係的正確具體分析,模式優化(模式分解)
- 注意:給出的ER圖是不全的,可能還會少實體,關係
- 一定要仔細檢查大段的說明文字,不能遺漏關係,欄位等
【15.資料結構與演算法】
【16.Java程式設計】
- 一般考的是設計模式直接應用於程式碼上,一年一個模式:要注意根據對應的設計模式的精神,來考慮程式碼的安排
- 特別注意abstract的使用,在方法,類的修飾上
- 寫屬性不要忘記資料型別,許可權修飾符最好寫上
- 由子類或實現類來推斷出,上層類/介面的方法和具體實現