1. 程式人生 > >軟考基礎知識筆記

軟考基礎知識筆記

【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內容,確保永遠是將要執行的下一條指令地址,順序執行的話,只是簡單的加一,
      轉移指令時,指令地址根據當前地址加上一個向前或向後的偏移量得到,或者根據轉移指令給出的直接轉移地址得到
  • 地址暫存器(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×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版
      • 移交階段: 測試,基於反饋調整,交付系統

敏捷開發方法

  • 極限程式設計
    • 將專案細分小模組,迭代編寫,
    • 先測試再程式設計
    • 結對程式設計
  • 水晶法 : 每一個專案都要有一套不同的策略和方法
  • 並列爭求法 :該方法使用迭代的方法,將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 得到佔用位元組數

動畫與視訊

  • 彩色電視的制式: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個活動
      • 標識物件類
      • 標識結構
      • 定義主題
      • 定義屬性
      • 定義服務
  • OOD模型(物件建模技術):

    • OOA的五個層次和五個活動貫穿在OOD中
    • 四個活動構成:
      • 設計問題域部件:OOA的結果就是OOD的問題域部件
      • 設計人機互動部件
      • 設計任務管理部件:識別事件驅動任務
      • 設計資料管理部件:目的是隔離資料管理方案對其他部件的影響
  • 【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個或更多

UML圖
元素說明
關係圖
關聯圖
示例圖
順序圖
順序圖和用例圖
狀態圖
活動圖
活動圖關係
構件圖
部署圖
部署圖關係

外鏈部落格:
- 一.用例圖_1 || 用例圖_2
- 二.類圖_1 || 類圖_2
- 三.序列圖
- 四.狀態圖
- 理解九種圖

狀態圖:

UML概念圖

  • 有點像ER圖,也是描述了實體之間關係(有一對多等關係),有面向物件特有的關係

【14.資料庫設計】

  • 考試套路:
    • 1.補全ER圖
    • 2.補全關係模式指明主外來鍵
    • 3.新增一個實體,或修改關係模式。或者優化
  • 考點:
    • ER圖的補充,主外來鍵的確定,業務關係的正確具體分析,模式優化(模式分解)
    • 注意:給出的ER圖是不全的,可能還會少實體,關係
    • 一定要仔細檢查大段的說明文字,不能遺漏關係,欄位等
      ER圖

【15.資料結構與演算法】

【16.Java程式設計】

  • 一般考的是設計模式直接應用於程式碼上,一年一個模式:要注意根據對應的設計模式的精神,來考慮程式碼的安排
  • 特別注意abstract的使用,在方法,類的修飾上
  • 寫屬性不要忘記資料型別,許可權修飾符最好寫上
  • 子類實現類來推斷出,上層類/介面的方法和具體實現