虛函數,純虛函數,純基類
:虛函數:可以有實現,主要是爲了動態識別調用子類函數,可以新建對象,允許用基類的指針來調用子類的這個函數
:純虛函數:沒有實現,爲了實現一個接口,起到一個規範的作用,規範繼承這個類的程序員必須實現這個函數,不可以新建對象
virtual void funtion1()=0
:虛基類:每個繼承類,只產生一個拷貝。
:抽象類:稱帶有純虛函數的類爲抽象類。
:友元不是成員函數,只有成員函數纔可以是虛擬的,因此友元不能是虛擬函數
:析構函數應當是虛函數,將調用相應對象類型的析構函數
:
sizeof():
求對象或者類型的大小
(0)sizeof是運算符,不是函數;
(1)sizeof不能求得void類型的長度;
(2)sizeof能求得void類型的指針的長度;
(3)sizeof能求得靜態分配內存的數組的長度!
(4)sizeof不能求得動態分配的內存的大小!
(5)sizeof不能對不完整的數組求長度;
(6)當表達式作爲sizeof的操作數時,它返回表達式的計算結果的類型大小,但是它不對表達式求值!
(7)sizeof可以對函數調用求大小,並且求得的大小等於返回類型的大小,但是不執行函數體!
(8)sizeof求得的結構體(及其對象)的大小並不等於各個數據成員對象的大小之和!
(9)sizeof不能用於求結構體的位域成員的大小,但是可以求得包含位域成員的結構體的大小!
struct和class區別:
這裏有兩種情況下的區別。
(1)C的struct與C++的class的區別。
(2)C++中的struct和class的區別。
C中:
struct只是作爲一種複雜數據類型定義,struct中只能定義成員變量,不能定義成員函數。
C++中:
1:class中默認的成員訪問權限是private的,而struct中則是public的
2:class繼承默認是private繼承,而struct繼承默認是public繼承
3:class還可以用於表示模板類型,struct則不行
拷貝構造函數:
以下情況都會調用拷貝構造函數:
一個對象以值傳遞的方式傳入函數體
一個對象以值傳遞的方式從函數返回
一個對象需要通過另外一個對象進行初始化。
深拷貝和淺拷貝可以簡單理解爲:
如果一個類擁有資源,當這個類的對象發生複製過程的時候,資源重新分配,這個過程就是深拷貝,
反之,沒有重新分配資源,就是淺拷貝
軟件安全性:
軟件安全性(software safety) 使軟件所控制的系統始終處於不危及人的生命財產和生態環境的安全狀態的性質
主題 | 項目列表 |
系統安全性及其測試方法 | ? 軟件系統的安全性 ? 系統安全規範與標準 ? 源代碼評審方法 ? 基於風險的安全測試 ? ***性測試方法 ? 模糊測試方法 |
代碼安全性檢驗 | ? 程序代碼安全性 ? C++/Java安全性列表(Checklist) ? JavaScript安全性列表 ? 代碼安全性掃描工具 |
Web安全性測試 | ? 動態跟蹤元素屬性 ? 檢測JavaScript事件 ? 跨站腳本***(XSS) ? 跨站請求僞造***(CSRF) ? 拒絕服務***(DoS) ? Cookie劫持 ? 輸入驗證 ? 瀏覽器安全問題 ? 文件上傳風險 ? Web服務器端安全性 ? MS IIS 漏洞檢驗 ? Apache /Tomcat/...漏洞檢驗 ? 內容安全性 ? 會話管理 ? 截獲和修改post請求 ? SQL注入及其實例 ? AJAX安全性測試 ? 多系統單點登錄機制 ? ***性Web安全測試 ? 使用工具掃描SQL注入漏洞 ? 使用Firebug觀察實時的請求頭 ? 使用Webscarab觀察實時的post數據 ? 使用Tamperdata觀察實時的響應頭 ? 使用curl檢驗URL重定向*** ? 使用nikto掃描網站 |
系統功能安全性驗證 | ? 口令安全性 ? 身份驗證 ? 用戶權限 ? 非授權*** ? 訪問控制策略 ? 操作日誌檢查 ? 配置管理 ? 功能失效、異常帶來的安全風險 |
數據安全性驗證 | ? 數據編碼驗證 ? 數據加密和解密 ? 系統數據完整性 ? 數據管理性 ? 數據的獨立性 ? 數據備份和災難恢復 |
網絡和通信安全性檢驗 | ? 協議一致性驗證 ? 防火牆 ? ***檢測技術 ? 網絡攔截 ? IPSec/SSL *** ? PKI/CA ? 網絡漏洞檢查工具 |
來源: <http://blog.csdn.net/kerryzhu/article/details/6162078>
進程調度管理:
算法:
先來先服務,短作業優先:
高級優先權優先調度算法:
1:優先權調度算法(非搶佔式,搶佔式優先權)
2:高響應比優先調度算法:(兼顧長,短作業)
時間片的輪轉調度算法:
1:時間片輪轉法(進程排隊)
2:多級反饋隊列調度:設定幾個不同優先級的棧隊列
死鎖發生的原因:
產生死鎖的原因主要是:
(1) 因爲系統資源不足。
(2) 進程運行推進的順序不合適。
(3) 資源分配不當等。
產生死鎖的四個必要條件:
(1) 互斥條件:一個資源每次只能被一個進程使用。
(2) 請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。
(3) 不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。
(4) 循環等待條件:若干進程之間形成一種頭尾相接的循環等待資源關係。
這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之
一不滿足,就不會發生死鎖。
死鎖的預防:
1:安全序列(資源的合理分配)
2:銀行家算法(資源分配)
死鎖解除:
1:系統重啓
2:撤銷進程,剝奪資源
頁面置換算法:
1:FIFO先進先出 : 這個很好理解(主要考慮,內存多大,作業多少)
易於實現,性能不好
2:OPT最佳置換算法:淘汰的某個頁面,在將來不會被使用(最遠的將來纔會被訪問)必須預先知道整個運行過程中頁面的走向情況,因此只是理想的狀況,一般用來衡量其他算法的優劣。
3:LRU最近最少使用置換法:選擇一段時間內,最久沒有使用過的頁面予以淘汰。
4:Clock置換(LRU算法的近似實現)
5:LFU最少使用置換算法:
6::工作集算法
7:工作集時鐘算法
8:老化算法(LRU相似)
9:NRU(最近未使用)
10:第二次機會(FIFO的改進算法)
邏輯地址 物理地址轉換:
1:頁式存儲:
頁內地址d = 邏輯地址A[12293]mod頁面大小L[1024*4]
頁內地址d = 5
物理地址=塊的大小(即頁的大小L)*塊號f+頁內地址d
物理地址=[塊的大小(1024×4)× 塊號()]+頁內地址d(5)
帶入計算:
物理地址[12293]=[塊的大小(1024×4)× 塊號(3)]+頁內地址d(5)
IPV6協議特性:
1:巨大的地址空間:128位,(16字節)
2:新的協議頭格式(基本包頭+擴展包頭)減少了IPv4中的包頭數,提高了效率
3:有效的,分級的尋址和路由結構:三層拓撲結構
4:有狀態和無狀態的地址配置:簡化主機配置
5:內置安全性:IPv6協議支持IPSec:
6:更好的支持Oos((Quality of Service)服務質量,是網絡的一種安全機制, 是用來解決網絡延遲和阻塞等問題的一種技術。
7:用新協議處理鄰節點的交互:鄰節點發現協議。(,取代了地址解析協議(ARP)(基於廣播的)?ICMPv4路由器發現,以及ICMPv4重定向報文?)
8:可擴展性:擴展包頭。
緩衝區溢出***原理,方法,防範:
原理:當向緩衝區裏寫入的數據超過了爲其分配的大小時,就會發生緩衝區溢出。
防範防範:
目前有三種基本的方法保護緩衝區免受緩衝區溢出的***和影響:
1、通過操作系統使得緩衝區不可執行,從而阻止***者植入***代碼;
2、強制寫正確的代碼的方法;
3、利用編譯器的邊界檢查來實現緩衝區的保護,使得緩衝區溢出不可能出現,從而完全消除了緩衝區溢出的威脅。(使用運行檢查器也是不錯的選擇.)
數據鏈路層協議:
數據鏈路層屬於計算機網絡的底層,使用的信道主要有點對點信道和廣播信道兩種類型。
在TCP/IP協議族中,數據鏈路層主要有三個目的:
1)爲IP模塊發送和接收數據
2)爲ARP模塊發送ARP請求和接收ARP應答
3)爲RARP模塊發送RARP請求和接收RARP應答
TCP/IP支持多種不同的鏈路層協議,這取決於網絡所使用的硬件,如以太網,令牌環網,FDDI(光纖分佈式數據接口)及RS-232串行線路,PPP協議,loopback協議等。
無線加密協議:
1:wpa協議:wifi保護訪問協議: 替代wep加密協議,wpa2協議
2: