計算機考研復試常見題型
1.數據庫設計過程
需求分析階段(根據用戶對功能、性能的需求進行分析);
概念結構設計階段(根據需求設計E-R圖);
邏輯結構設計階段(E-R圖轉為表);
物理結構設計階段(存儲結構 存儲路徑的設計);
數據庫實施階段;
數據庫運行和維護階段;
2.事務及特性:
是一個數據庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
原子性:要么全做,要么全不做。如果發生錯誤,會回滾到之前的狀態。
一致性:并行執行的事務必須與串行執行的結果相一致。
隔離性:事務的執行不受其他事務的干擾。
永久性:事務執行完之后,數據永久保存。
3.黑盒測試白盒測試
黑盒測試也稱功能測試:在不清楚結構的情況下進行功能的測試。(等價類劃分法,邊界值分析法)
白盒測試也稱結構測試:在清楚結構的情況下發現編碼過程中的錯誤。
4.軟件危機
落后的軟件生產方式無法滿足迅速增長的軟件需求,從而導致軟件開發與維護過程中出現一系列嚴重問題的現象。
主要表現:
開發進度難以預測
開發成本難以控制
用戶對產品功能難以滿足
產品質量無法保證
產品難以維護
5.軟件工程
是一門研究用工程化方法構建和維護高質量的軟件的學科。
6.進程和線程
進程的出現是因為程序這個靜態概念已經不能如實反映并發執行過程的特征,進程可以更好地使多道程序并發執行,提高資源利用率。
線程:屬于“輕量級的進程”,可以減少時空開銷,進一步提高資源利用率。
進程是擁有資源的基本單位。系統開銷相比線程大得多。
線程是獨立調度的基本單位。線程不擁有資源但可以訪問所屬進程的資源。
什么時候用線程:在執行一些細小任務需要頻繁創建銷毀,頻繁切換時,使用線程會大大減少系統開銷。
作業:要求計算機完成的一串任務稱為作業。作業調度時將其從外存后備隊列調入內存,為其建立根進程,根進程又會創建子進程去完成指定任務。
7.面向過程和面向對象
面向過程將問題分解成一個個步驟,再用函數實現各個步驟。
面向對象把客觀事物抽象成 “對象”。對同類對象抽象出其共性,形成類。其中包含他的屬性和方法。
修改需求時面向過程要重新編寫代碼。而面向對象無需更改原有的類,只需增加相應的類來實現該需求。
(炒飯和蓋澆飯)
8.面向對象的三個基本特征:封裝、繼承、多態。
封裝:也就是把客觀事物封裝成抽象的類。
繼承:它可以使用父類的所有功能,并可對這些功能進行擴展。
多態:同一個方法,不同的對象會產生不同的行為。根據傳過去的引用或者指針的類型去決定到底執行哪個類的函數。
實現多態有兩種方式,覆蓋,重載。
覆蓋:子類重新定義父類的虛函數。
重載:函數名相同,參數表不同。
9.public private protected修飾的函數的區別
private:只能被本類中的成員函數引用。
protected:可以被該類中的函數、子類的函數訪問,但無法被對象訪問。
public:既可以被該類中的函數、子類的函數訪問,也可以被對象訪問。
10. 三級調度
作業調度(高級):從外存的后備隊列中挑選作業進入內存,為其創建進程,分配資源。
內存調度(中級):暫不運行的進程調入外存掛起,運行時再解掛。
處理機調度(低級):根據某種算法分配CPU給某個進程。
11. 計算機工作過程
程序和數據裝入內存;
源程序轉化為可執行文件
執行可執行文件。
12. 源程序->可執行文件
編譯:形成匯編語言
匯編:形成機器語言
鏈接:形成可執行文件(此時在磁盤上,運行時需要裝入內存形成物理地址)
13. 鏈表和數組
空間上:數組需要連續存儲空間。鏈表用指針相連,支持動態增長。
內存占用:鏈表的指針需要額外存儲空間。
插入刪除:鏈表僅需修改指針,數組需要大量移動元素。
隨機存取:數組支持。
14. IP->MAC轉換(查-廣播-響應)
采用ARP協議。
① A先在ARP高速緩沖中查找,有則將MAC幀發往該硬件地址。②無則廣播ARP請求,③目的主機收到后,向A響應ARP請求,發送映射關系。④A將映射關系寫入緩存,再將MAC幀發往該硬件地址。
(RARP:逆地址解析協議MAC-> IP
工作過程:①主機從網卡上讀取MAC地址,②然后廣播RARP請求。③RARP服務器響應請求,為其分配IP地址。)
15. 算法的概念及其特性
定義:對特定問題求解步驟的一種描述。
有窮性:有限步后結束。
確定性:每一步都有明確的定義。
可行性:算法中的操作都可以通過有限次基本運算來實現。
輸入:0個或多個輸入。
輸出:1個或多個輸出。
16. 什么是O
O表示算法復雜度 ,他需要通過時間復雜度和空間復雜度來描述。
時間復雜度是程序中所有語句被執行的次數之和的數量級函數。
空間復雜度是關于算法所耗費的存儲空間的函數。若算法所需輔助空間為常量,則空間復雜度是O(1),即原地工作。
17. 排序算法
快排復雜度怎么來的:
最好為O(nlogn)。每次需要將數組分成兩半進行比較交換,最好情況下每次都分為等長兩個部分,則需要logn次劃分。最差情況下分為n-1個元素和0個元素,則需n次劃分。
不管最好還是最差劃分 每趟排序都需要對元素進行n次比較,所以最好為nlogn,最差為n^2。
每次隨機選擇基準元素可以使得最壞情況幾乎不會發生。
基數排序:將所有待比較數統一為同樣的長度,不足的前面補零 。然后對每個數的第i位數進行比較,插入相應的隊列,最后將隊列用指針鏈接。如此循環直到最高位比較完畢。
時間復雜度為d(n+r),其中d為關鍵字個數。r為隊列數,n為排序數。
18. IPv4和IPv6
前者地址32位,后者地址128位,根本上解決了IP地址耗盡的問題。(CIDR和NAT非根本上解決)
IPv6同時提高了安全性。
19. 死鎖
定義:多個進程因資源競爭而造成的僵局
原因:系統資源的競爭;進程推進非法。
必要條件(不滿足任意一個則不發生死鎖):互斥;不可剝奪;請求并保持;循環等待
解決死鎖:
預防:破壞必要條件
避免:銀行家算法和安全性算法(先用銀行家算法預先分配資源,再用安全性算法檢測這次分配是否安全,也就是是否能找到一個安全序列,能則正式分配,否則撤回之前的分配)
檢測與解除:看資源分配圖是否可簡化(死鎖定理:如果資源分配圖可以化簡則沒有死鎖)
如何打破循環等待造成的死鎖:
1) 逐個撤銷處于死鎖狀態的進程。
2) 撤銷所有處于死鎖狀態的進程。
3) 搶占處于死鎖狀態以外的進程的資源分給死鎖進程。
4) 處于死鎖狀態的進程逐個放棄所占用的資源。
20. 可搶占式 非搶占式
可搶占:當有優先級更高的進程到達時,暫停正在運行的進程分配CPU給優先級高的進程。
不可搶占:不會暫停正在運行的進程,而是等該進程主動讓出(時間片用完或發生事件等待)。
21. http和https
HTTP 是超文本傳輸協議,信息是明文傳輸,HTTPS 則是使用SSL技術的加密傳輸協議。
http的連接簡單,是無狀態的;HTTPS相對比較安全。
他們的連接方式、端口號也不同。
https需要到ca申請證書,需要一定費用。
22. python的賦值;深拷貝;淺拷貝
直接賦值:就是引用。
淺拷貝:拷貝父對象,不會拷貝子對象(仍然是引用)。
深拷貝:完全拷貝了父對象及其子對象。兩者完全獨立了。
import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始對象
b = a #賦值,傳對象的引用
c = copy.copy(a) #對象拷貝,淺拷貝
d = copy.deepcopy(a) #對象拷貝,深拷貝
a.append(5) #修改對象a
a[4].append('c') #修改對象a中的['a', 'b']數組對象
print( 'a = ', a )
print( 'b = ', b )
print( 'c = ', c )
print( 'd = ', d )
輸出:
('a = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])
('b = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])
('c = ', [1, 2, 3, 4, ['a', 'b', 'c']])
('d = ', [1, 2, 3, 4, ['a', 'b']])
23. python的多繼承
一個子類可以繼承多個父類。
當多個父類有相同名字的方法時:如果子類有重寫 就調用子類的。如果沒有重寫,按照繼承的順序調用第一個父類的。
24. 貪心;dp;分治
貪心:只考慮當前最優解,而非全局最優。
dp:考慮到全局最優,求解子問題過程中保留可能的局部最優,從下往上,一步步對比出全局最優。
它在實現的過程中,需要存儲一些狀態,所以是一種以空間換時間的技術。
分治:顧名思義分而治之,將問題分為若干與原問題相似的互相獨立的子問題(dp則是重疊子問題),遞歸解決再合并結果。如歸并排序。
25. 操作系統定義 特性 功能
定義:計算機資源的管理者。
特性:
并發:同一時間間隔內發生;并行:同一時刻。
共享:資源共享。并發共享互為條件。
虛擬:將一個物理設備變為若干邏輯上的設備。
異步:因為資源有限,所以走走停停。
功能:進程管理;存儲器管理;文件管理;設備管理的功能。
26. 各種操作系統
多道批處理特點:多道;宏觀上并行;微觀上串行。無法實現交互。(用戶不知道進度)
分時操作系統:把CPU的時間分為一個個時間片,把時間片分配給各作業。可以實現交互。
實時操作系統:收到信號及時處理。及時性和可靠性。
27. 計算機網絡邊緣部分的通信方式
C/S:(客戶端/服務器模式):用戶表示層(包括頁面顯示和邏輯處理)和數據層兩層。服務器與客戶端是服務與被服務的關系,分別是服務提供方和服務請求方,都需要使用核心部分提供的功能,雙向通信。
B/S(瀏覽器/服務器模式):表現層;邏輯層;數據層三層。
P2P:不區分服務請求方與提供方,都是對等的實體。
28. 云計算和物聯網
云計算是一種商業模式。云計算服務提供商將資源池化(如計算,存儲資源),用戶可以通過網絡付費訪問。可以將云服務提供商比作自來水廠,用戶按需付費索取水資源。
物聯網:通過傳感器把任何物品與互聯網相連,進行信息交換和通信,來實現對物品的管理的一種網絡。(物聯網需要處理大量數據,所以離不開云計算)
29. 大數據和人工智能
大數據:海量數據。在海量數據中搜尋有價值的數據就需要云計算提供數據的計算存儲服務。
人工智能包括圖像識別,語音識別,機器人等領域,人工智能的智能就是通過大數據計算分析出來的智慧,所以也需要云計算提供數據的計算存儲服務。
30. JVM(java虛擬機)包含在JDK(java開發工具包)中。
虛擬機類似翻譯官;所有Java文件要編譯成統一的字節碼,虛擬機將字節碼翻譯成各個系統對應的機器碼,實現一次編寫,到處運行。
31. C和JAVA的區別
java支持跨平臺,所有Java文件要編譯成統一的字節碼,虛擬機將字節碼翻譯成各個系統對應的機器碼,實現一次編寫,到處運行。C不行。
C用于編寫底層程序,運行速度較快。
一個面向過程一個面向對象。
32. 三次握手
第一次:客戶端發送連接請求報文段,其中SYN置1。
第二次:服務器端發送確認報文段,其中SYN=1,ACK=1。
第三次:客戶端收到服務器端的確認報文段后,再此發送確認報文段,其中ACK=1。
為什么要三次握手:
如果不使用三次握手,此時有一個滯留在網絡中的 SYN 報文段,突然傳送到 B 了。B 就以為 A 現在請求建立 TCP 連接,就分配資源,等待 A 傳送數據。但 A 并沒有想要建立 TCP 連接,也不會向 B 傳送數據。浪費了B的資源。
如果使用三報文握手,那么 B 在收到 A 發送的陳舊的 SYN 報文段后,就向 A 發送 SYN報文段,當 A收到 B 的 SYN 報文段時,從確認號就可得知不應當理睬這個 SYN 報文段。這時, A 發送復位報文段。B 收到 A 的 復位報文段后,就知道不能建立 TCP 連接,不會等待 A 發送數據了。
33. 四次揮手(2 3 4 3)
FIN=1 seq=x
seq=y ACK=1 ack=x+1
FIN=1 seq=u ACK=1 ack=x+1
seq=x+1 ACK=1 ack=u+1
34. 為什么要4次揮手
發送方發送完數據后會通知接收方釋放連接,接收方確認后發送方進入半關閉狀態。當接收方也沒有數據要發送的時候,則發出連接釋放的通知,對方確認后才完全關閉了TCP連接。
35. 詞法分析器
輸入源程序,按照某種規則分解成一系列單詞、符號。
36. 一個指針占幾個字節
指針就是地址,對一般編譯器而言任何類型的指針變量都占用4個字節。
37. 確定的有窮自動機和不確定的有窮自動機
確定的有窮自動機就是說當一個狀態面對一個輸入符號的時候,它所轉換到的是一個唯一確定的狀態;而不確定的有窮自動機它所轉換到的可以是一個狀態集合。確定的有窮自動機開始狀態是唯一的,而不確定的有窮自動機開始狀態是一個狀態集合。
另外:
有窮自動機用于編譯中的詞法分析。
詞法分析就是判斷每個詞語是否符合規范。
語法分析則是判斷每個語句是否符合語法規范。
38. TCP和UDP
TCP:使用前建立連接,使用后釋放連接。提供可靠交付(按時按序不重復)。面向字節流。
UDP特點:無連接;盡最大努力傳輸(不故意丟失報文段);面向報文。
39. 局部變量和全局變量同名
使得在函數內用到該變量時,使用到的時局部變量而非全局變量。
40. 永真式和永假式
永真式:對于一個公式,對它的任一解釋其值都為真。
永假式:反之。
41. 用白軍和藍軍解釋 沒有100%可靠的通信
藍軍對白軍發電文說:明天中午發起攻擊,收到請確認
白軍收到電文并加以確認:收到,請確認
藍軍:收到,請確認
白軍:收到,請確認
…
就這樣,藍軍和白軍一直在信息確認中。所以設計不出100%可靠的協議。
42. 數據庫保護又叫做數據庫控制。
安全性控制,完整性控制,并發性控制和數據恢復。
安全性控制:防止對數據庫的非法使用。
完整性控制:保護數據的正確性和相容性。
并發性控制:防止多個用戶同時操作數據庫時出現錯誤。
數據恢復:當出現錯誤時,恢復到某一正確狀態。
43. 完整性約束
為了保證數據的正確性和相容性,對關系模型提出的某種約束。有實體完整性;參照完整性;用戶定義完整性。
44. 和文件系統相比數據庫系統的優點
① 提高了獨立性。
② 提高了共享性,可以多個用戶同時訪問。
③ 減少了數據冗余。
45. 系統調用
是用戶程序取得os服務的唯一途徑。凡是與資源有關的操作(內存管理,文件管理,進程管理)都應通過系統調用請求os代為完成。系統調用可以看作特殊的公共子程序。
用戶態->核心態:中斷;系統調用;用戶程序企圖執行特權指令。
- 46. 帶寬
最高數據傳輸速率,每秒傳輸多少比特數。
47. 范式
可以理解為一張數據表的表結構所滿足的某種設計標準的級別。
1NF:要求表中的屬性都不可再分。(問題:數據冗余,增刪改異常)
2NF:要求不存在非主屬性對碼的部分函數依賴。
碼:可以唯一確定一條數據的屬性集合。
非主屬性:除了碼的其他屬性。
部分函數依賴:非主屬性可以由碼中的一部分決定。而不是需要整個碼才能決定。(相對于完全函數依賴)如姓名這個非主屬性可以由碼的一部分(學號)決定,所以是部分函數依賴。
3NF:要求不存在非主屬性對碼的傳遞函數依賴。
傳遞函數依賴:A依賴B,B依賴C,那么A依賴C。
48. 解決忙等問題,從而實現“讓權等待”:
忙等:當一個進程進入不了臨界區時,他還會一直while循環試探,直到CPU時間片用完,浪費資源。
解決:采用記錄型信號量機制。它用整型變量代表資源數,同時用鏈表存儲等待資源的進程。當進程申請資源時,資源數-1,此時若資源數<0,則將該進程插入等待隊列,放棄CPU使用權,從而實現讓權等待。
49. 指針和引用的區別
1)指針是一個變量,存儲的是一個地址,指向內存的一個存儲單元;引用跟原來的變量實質上是同一個東西,只不過是它的一個別名。
2)指針可以為空。引用不行,且引用必須初始化;
3)指針可以有多級,引用不行。
為什么要用引用:函數調用時不會生成副本占用內存,同時也可提高傳參的效率。
如:void Swap(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
Swap(a,b);
50. 數據庫中的數據模型
層次模型;網狀模型;關系模型。
51. 關系數據庫的操作
選擇 投影 連接 除法(選頭鐮鋤)
52. 以太網和無線局域網發送數據是否需要確認
無線局域網需要,以太網不需要。
因為無線局域網的MAC協議不進行碰撞檢測,且無線信道易受干擾,所以需要確認。而以太網有線網絡中,可以實現碰撞檢測,且誤碼率低,所以無需可靠傳輸。
53. 棧
先進后出;只能在一端進行操作;操作受限的線性表。
54. 軟件工程的重構和設計模式
設計模式(不分語言):是對代碼開發經驗的總結,是解決特定問題的一系列套路,類似于模板。
重構:并不改變功能,只是對內部結構進行調整,使其更好理解和使用。
55. 軟件開發模式
是指軟件開發全部過程、活動和任務的結構框架。
比如瀑布開發模式(瀑布模型)就是典型的開發模式:它最早強調開發應有完整的周期,且必須完整地經歷每個周期內的每個階段,缺點是缺少靈活性。
56. α、β、λ測試
表示軟件測試中的三個階段。
α是第一階段,一般用于內部測試;
β是第二個階段,已經消除了軟件中大部分的不完善之處,
但仍有可能還存在缺陷,一般只提供給特定的用戶群來測試使用;
λ是第三個階段,此時產品已經相當成熟,只需在個別地方再做進一步的優化處理即可。
57. 分布式處理大數據
分布式處理是相對于集中式處理而言的。
每臺計算機都擁有自己的存儲和處理設備,原先集中在單節點上的龐大計算任務被分給分布式網絡中的計算機并行處理。
分布式計算優點:(性能+擴展+并行處理)
1.分布式網絡中的每臺機器都能存儲和處理數據,降低了成本以及對機器性能的要求。
2. 拓展性極強,在當前系統存儲或計算能力不足時,可以簡單地通過增加PC機的方式來增加系統的處理和存儲能力;
3. 處理能力極強。龐大的計算任務可以在合理分割后由分布式網絡中的機器并行地處理。
58. 弗洛伊德算法
三層for循環,n^3的復雜度。
最外層表示:最開始只允許經過1號頂點進行中轉,接下來只允許經過1和2號頂點進行中轉……允許經過1~n號所有頂點進行中轉,求任意兩點之間的最短路程。
59. 機器學習,深度學習
深度學習是一種特殊的機器學習。
機器學習需要人為給出特征讓機器學習,而深度學習會自動找出特征進行學習。
深度學習適合處理大數據,而數據量比較小的時候,用傳統機器學習也許更合適。
60. 監督式機器學習、無監督式機器學習和半監督式機器學習
機器學習分為監督式機器學習、無監督式機器學習和半監督式機器學習。其劃分的標準是訓練樣本是否包含人為標注的結果。
(1)監督式機器學習(概念學習):從給定的標注樣本學習出一個函數,當新的數據到來時,可以根據這個函數預測結果。算法主要有:回歸和分類。
(2)無監督式機器學習(歸納推理):與監督學習相比,訓練樣本沒有人為標注的結果。
(3)半監督式機器學習:是監督學習和無監督學習相結合的一種學習方法。它主要考慮如何利用少量的標注樣本和大量的未標注樣本進行訓練。
61. nice準則和香農定理
適用條件;數據傳輸速率計算公式;優化速率方案三個方面。
62. 虛函數、純虛函數(抽象函數)、 抽象類
虛函數:那些被virtual修飾的函數,作用就是實現多態。
純虛函數(抽象函數):沒有具體內容的函數,一般用"= 0"修飾。
抽象類:指至少含有一個抽象函數的類,抽象類不能被實例化,它實際上是提供了一個接口,即用戶不需要關心具體的實現。
63. 普適計算
是一個強調和環境融為一體的計算概念,在此模式下,人們能夠在任何時間、任何地點、以任何方式進行信息的獲取與處理。
64. UML
統一建模語言,全稱是Unified Modeling Language。是面向對象設計的建模工具。
65. E-R圖即E-R模型
即實體-聯系圖,由實體,屬性和聯系組成。在數據庫設計中被廣泛使用的建模工具。
66. 視圖
基于SQL語句結果集的可視化表,是一個虛表,它本身不存放數據,只是為了更好地簡化操作,滿足用戶不同需求。
67. 公共密鑰和傳統密鑰的區別
從密鑰個數上來說:2個,一個是公鑰一個是私鑰;雙方共享同一個密鑰。
從密鑰保存方式上來說:公鑰公開,私鑰是個人的;雙方共享同密鑰。
最后公鑰 密鑰分配簡單但速度慢。
68. 指令和數據都存于存儲器中,計算機如何區分它們?
主要通過不同的時間段來區分指令和數據,即:取指周期取出的為指令,執行周期取出的為數據。
69. TCP/IP4層和ISO7層
網絡接口層:包括物理層(透明傳輸比特流,規定與傳輸媒體接口的一些特性,包括機械,電氣,功能,過程特性),數據鏈路層(封裝成幀 透明傳輸 差錯檢測)
網際層:(路由選擇 分組轉發 異構網絡互聯)
傳輸層:(可差留用?--TCP/IP提供可靠傳輸,UDP盡最大努力交付,差錯控制,流量控制,復用分用)
應用層:(直接為用戶進程提供服務)
IOS:
物鏈網輸 同上
會話層:建立管理和終止會話
表示層:處理交換信息的表示方式,如數據壓縮,加密解密
應用層:直接為用戶進程提供服務
區別和聯系:
同:都體現分層結構 下層服務上層
都有網絡 傳輸 應用層
異:層數 7和4
支持連接不同
應用規模不同
70. TCP/IP中各層的PDU
首先PDU是對等實體傳輸的數據單位。PDU=PCI+SDU。
物理:比特流;數據鏈路:幀;網絡層:分組;
傳輸:報文段;應用:報文。
71. 網絡層協議:
ARP;IP;ICMP;IGMP
ICMP:網絡控制報文協議,主機或路由器報告差錯或異常來提高交付成功的機會。
72. 中繼器和集線器;網橋和交換機;路由器區別(多層域,擴帶點)
集線器是多端口的中繼器,交換機是多端口的網橋。
分別工作在物理層;數據鏈路層;網絡層;
分別不能隔離;可以隔離沖突域;可以隔離沖突域和廣播域。
前面的只是擴大地理范圍,而路由器可以支持異構網絡互聯。
集線器均分帶寬,而交換機獨占帶寬。
73. 網卡
是連接電腦與局域網的設備。因為網卡和局域網的數據傳輸是通過雙絞線串行傳輸,而網卡和計算機的數據傳輸是通過I/O總線并行傳輸的,所以網卡主要功能是實現數據的串并轉化,另外也可以實現幀的發送與接收。
74. 平衡二叉樹本質是二叉搜索樹。
75. 堆和棧區別
棧存儲的是局部變量而堆存儲實體;
棧內存的更新速度高于堆;
棧內存的生命周期一結束就會被釋放而堆不定時回收。
76. dfs的非遞歸實現
77. new和malloc區別
int *p = new int;
int *p = (int *)malloc(10*sizeof(int));
1)屬性
new/delete是C++關鍵字,需要編譯器支持。malloc/free是庫函數,需要頭文件支持。
2)內存大小
new會根據對象類型指定內存塊的大小。而malloc則需要顯式地指出所需內存的尺寸。
3)返回類型
new返回的是對象類型的指針。而malloc則返回void *,需要強制類型轉換。
78. C++中的靜態變量和靜態函數
類靜態變量在編譯時創建并初始化。
靜態變量和靜態函數用static關鍵字修飾,他們屬于類,不屬于任何對象,為所有此類的對象所共享。正因為如此,靜態函數不能訪問非靜態成員。
79. const
指變量或函數的值不可被更新,為了防止意外的修改,增強代碼的健壯性。
80. 內存泄漏
指程序中已動態分配的內存由于某種原因未釋放或無法釋放,造成內存的浪費,導致程序崩潰等嚴重后果。
如何避免:
動態分配內存的指針最好不要再次賦值。
若需要賦值,應該注意被賦值指針需要不需要釋放。
比如pq分別指向某一內存塊,此時將p=q,則p原來指向的內存塊將無法找到,也就無法釋放。
81. 馮·諾依曼計算機的特點是什么(五一倆順中)
由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成;
指令和數據以同一形式(二進制形式)存于存儲器中;
指令由操作碼、地址碼兩大部分組成;
指令順序存放
以運算器為中心(現在的計算機以存儲器為中心)
82. HTTP和HTTPS的區別
https協議需要到ca申請證書,需要一定費用。
HTTP 是超文本傳輸協議,信息是明文傳輸,HTTPS 則是使用SSL技術的加密傳輸協議。
HTTP 和 HTTPS 使用的是完全不同的連接方式,前者的端口號是80,后者是443。
http的連接簡單,是無狀態的;HTTPS協議比http協議安全。
83. 在瀏覽器中輸入url地址到顯示主頁的過程/點擊超鏈接后發生的事件
1)瀏覽器分析URL。
2)向DNS請求域名解析,DNS解析出IP地址
3)建立TCP鏈接
4)瀏覽器發出HTTP請求,服務器響應HTTP請求
5)釋放TCP連接
6)瀏覽器顯示信息。
84. MVC模式
M是模型model,V是視圖view,C是控制器controller。
它強制性地使應用程序的輸入、處理和輸出分開,它們各自處理自己的任務。最典型的MVC就是JSP+ servlet+ javabean的模式。
JSP(Java Server Pages即view,實現數據的展示)
servlet (即controller,用于處理請求)
javabean(即model,將創建的對象進行打包,供JSP,servlet等使用)
85. 三層C/S結構
表示層:負責用戶與應用間的交互。
功能層:處理業務邏輯。
數據層:對數據庫數據的讀寫。
86. 軟件測試的四個階段【單元測試、集成測試、系統測試和驗收測試】
單元測試:用于檢驗局部代碼邏輯或功能上的錯誤。
集成測試:對模塊間的接口進行測試。
系統測試:工程師對整個系統進行測試。
驗收測試:用戶對整個系統進行測試。

浙公網安備 33010602011771號