內存的分配方式
分配方式有三種,請記住,說不定那天去面試的時候就會有人問你這問題
1、 靜態存儲區,是在程序編譯時就已經分配好的,在整個運行期間都存在,如全局變量、常量。
2、 棧上分配,函數內的局部變量就是從這分配的,但分配的內存容易有限。
3、 堆上分配,也稱動態分配,如我們用new,malloc分配內存,用delete,free來釋放的內存。
內存分配的注意事項
用new或malloc分配內存時,必須要對此指針賦初值。
用delete 或free釋放內存后,必須要將指針指向NULL
不能修改指向常量的指針數據
黑盒測試
黑盒測試主要是為了發現以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結果?
3、是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?
白盒測試
白盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環的邊界和運行的界限內執行循環體。
4、測試內部數據結構的有效性,等等。
什么是模式?
模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。
Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。
模式有不同的領域,建筑領域有建筑模式,軟件設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現很多模式。
什么是框架?
框架,即framework。其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演。而且,框架一般是成熟的,不斷升級的軟件。
Turbine:
主要應用方面:WEB層。
主要應用技術:servlet等
出處:http://jakarta.apache.org/turbine/index.html
簡述:這是APACHE的開源項目。基于SERVLET。據說速度比較快,基于service(pluggable implementation可插拔的執行組件)的方式提供各種服務。
免費。
心跳包
為了減少服務端的工作壓力可以用以下方案: C定時向S發送心跳包(30秒/次) S收到C的心跳包后將包到來的時間記錄到數據庫中去.(并不須回C我收到你的心跳包) 如果S想檢測該C是不是仍在線,可取出最后一次心跳時間然后與當前時間進行比較如果大于30秒,則認為該C已經斷線了,否則該C仍在線. 這種方案適合于客戶端意外斷線,或卦了.通常情況下客戶正常下線是要發一個包告訴服務端我已經下線了.
一般是用來判斷對方(設備,進程或其它網元)是否正常動行,一般采用定時發送簡單的通訊包,如果在指定時間段內未收到對方響應,則判斷對方已經當掉。用于檢測TCP的異常斷開。
基本原因是服務器端不能有效的判斷客戶端是否在線也就是說,服務器無法區分客戶端是長時間在空閑,還是已經掉線的情況.所謂的心跳包就是客戶端定時發送簡單的信息給服務器端告訴它我還在而已。
代碼就是每隔幾分鐘發送一個固定信息給服務端,服務端收到后回復一個固定信息
如果服務端幾分鐘內沒有收到客戶端信息則視客戶端斷開。比如有些通信軟件長時間不使用,要想知道它的狀態是在線還是離線就需要心跳包,定時發包收包。
發包方:可以是客戶也可以是服務端,看哪邊實現方便合理。一般是客戶端。服務器也可以定時輪詢發心跳下去。
一般來說,出于效率的考慮,是由客戶端主動向服務器端發包,而不是相反。
stdlib.h里面定義了五種類型、一些宏和通用工具函數。
類型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;常用的函數如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。
下面列出了一些常見的光柵操作代碼:
BLACKNESS:表示使用與物理調色板索引0相關的色彩來填充目標矩形區域,(對缺省的物理調色板而言,該顏色為黑色)。
DSTINVERT:表示使目標矩形區域顏色取反。
MERGECOPY:表示使用布爾類型的AND(與)操作符將源矩形區域的顏色與特定模式組合一起。
MERGEPAINT:通過使用布爾類型的OR(或)操作符將反向的源矩形區域的顏色與目標矩形區域的顏色合并。
NOTSRCCOPY:將源矩形區域顏色取反,再拷貝到目標矩形區域。
NOTSRCERASE:使用布爾類型的OR(或)操作符組合源和目標矩形區域的顏色值,然后將怕顏色取反。
PATCOPY:將特定的模式拷貝到位圖上。
PATPAINT:通過使用布爾OR(或)操作符將源矩形區域取反后的顏色值與特定模式的顏色合并。然后使用OR(或)操作符將該操作的結果與目標矩形區域內的顏色合并。
PATINVERT:通過使用XOR(異或)操作符將目標矩形區域內的顏色與特定模式的顏色合并。
SRCAND:通過使用AND(與)操作符將來源和目標矩形區域內的顏色合并。
SRCCOPY:將源矩形區域直接拷貝到目標矩形區域。
SRCERASE:通過使用AND(與)操作符將目標矩形區域顏色取反后與源矩形區域的顏色值合并。
SRCCINVERT:通過使用布爾型的XOR(異或)操作符將源和目標矩形區域的顏色合并。
SRCPAINT:通過使用布爾型的OR(或)操作符將源和目標矩形區域的顏色合并。
WHITENESS:使用與物理調色板中索引1有關的顏色填充目標矩形區域。(對于缺省物理調色板來說,這個顏色就是白色)。
·列出命題公式真假值的表。通常以 1表示真,0 表示假。命題公式的取值由組成命題公式的命題變元的取值和命題聯結詞決定,命題聯結詞的真值表給出了真假值的算法: 即:當P為假時,P為真;當P為真時,P為假 真值表是在邏輯中使用的一類數學表,用來確定一個表達式是否為真或有效。 (表達式可以是論證;就是說,表達式的合取,它的每個結合項(conjunct)都是最后要做的結論的一個前提。) 真值表被用來計算真值泛函表達式的值(就是說是一個判定過程)。真值泛函表達式要么是原子(就是說是命題變量(或占位符)或命題函數 - 比如 Px)或建造自使用邏輯運算符(就是說 ∧ (AND),∨ (OR),¬ (NOT) - 例如 Fx & Gx)的原子公式。