-
TCP與UDP的區別。
-
TCP如何保證可靠傳輸。
-
TCP擁塞控制。
-
TCP三次握手、四次揮手的過程與作用?
-
TCP對應的協議?UDP對應的協議?
-
http 404和500界面(http狀態碼)
-
http方法
-
http長連接、短連接
-
輸入一個url后的過程
-
http、https的區別
-
ping屬於哪一層
-
ARP、RARP的含義以及區別
-
如何用UDP實現TCP
測試理論
-
為什么投測試開發?對測試開發的理解
-
如果開發人員跟你說不是bug怎么辦?
-
測試一個用例的一半過程。
-
查看用戶文檔、需求文檔、設計文檔的內容,以此來設計測試用例;
-
功能測試:測試該用例需要實現的功能能否正常實現
-
性能測試:負載測試、壓力測試。負載測試就是測試系統在各種工作負載逐漸增大時系統各項性能指標的變化。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試。(性能測試)
-
安全測試:以網站為例:網站登錄的安全性、是否存在溢出錯誤進而導致崩潰或者權限泄露。或者其他常見開發語言的安全性問題。
-
兼容性測試:瀏覽器、終端、操作系統等等的兼容性。
-
-
測試投幣販賣機
-
有一個實現單鏈表反轉的函數(如何設計測試用例)
-
測試一個地鐵進出站的二維碼
-
有一個桌面端程序作用是發文件,如何測試?
數據庫
-
數據庫的增刪查改
-
四大特性、三大范式
操作系統
-
並行與並發
並行處理(Parallel Processing)是計算機系統中能同時執行兩個或更多個處理的一種計算方法。並行處理可同時工作於同一程序的不同方面。並行處理的主要目的是節省大型和復雜問題的解決時間。
並發處理(concurrency Processing):指一個時間段中有幾個程序都處於已啟動運行到運行完畢之間,且這幾個程序都是在同一個處理機(CPU)上運行,但任一個時刻點上只有一個程序在處理機(CPU)上運行
並發的關鍵是你有處理多個任務的能力,不一定要同時。並行的關鍵是你有同時處理多個任務的能力。所以說,並行是並發的子集
-
進程與線程的區別與聯系
進程是是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。
線程則是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程也叫輕量級進程。
進程和線程的關系:
-
一個線程只能屬於一個進程,而一個進程可以有多個線程,但至少有一個線程。
-
資源分配給進程,同一進程的所有線程共享該進程的所有資源。
-
CPU分給線程,即真正在CPU上運行的是線程。
-
線程在執行過程中,需要協作同步。不同進程的線程間要利用消息通信的辦法實現同步。
-
-
線程同步方式?
- 互斥量:采用互斥對象機制,只有擁有互斥對象的線程才有訪問公共資源的權限。因為互斥對象只有一個,所以可以保證公共資源不會被多個線程同時訪問。
- 信號量:它允許同一時刻多個線程訪問同一資源,但是需要控制同一時刻訪問此資源的最大線程數量。
- 事件(信號):通過通知操作的方式來保持多線程同步,還可以方便的實現多線程優先級的比較操作。
-
進程通信方式?
為什么要通信?因為一個進程不能直接訪問另一個進程的地址空間。
-
進程同步的機制?
-
死鎖的產生與如何處理死鎖。
死鎖是指在一組進程中的各個進程均占有不會釋放的資源,但因互相申請被其他進程所站用不會釋放的資源而處於的一種永久等待狀態。
死鎖產生的四個條件(有一個條件不成立,則不會產生死鎖)
- 互斥條件:一個資源一次只能被一個進程使用
- 請求與保持條件:一個進程因請求資源而阻塞時,對已獲得資源保持不放
- 不剝奪條件:進程獲得的資源,在未完全使用完之前,不能強行剝奪
- 循環等待條件:若干進程之間形成一種頭尾相接的環形等待資源關系
避免死鎖:
-
linux基本命令:移動文件,查看端口號,查看文件最后十行
移動文件:mv
查看端口號:netstat(linux查看端口號)
查看文件最后十行:Linux查看文件的前幾行和后幾行
-
如何查看linux下一個線程有沒有執行成功?
top、ps命令:Linux查看進程所有子進程和線程
-
兩個進程同時訪問一個內存地址都是0123456,是不是一個內存
-
如何判斷一個linux命令是否執行成功?
Linux每一條基本命令都有一個返回碼,該返回碼用$?表示,執行成功返回0。(Linux判斷一個命令是否執行成功)
-
如何查看cpu利用率。
top:Linux查看cpu利用率
python
-
python知識:多線程、多進程、協程;
-
python內存管理
-
python -m test.py 和 python test.py 區別。
-
python中if __name __ == ‘main’含義?
-
Linux執行python腳本的命令。
數據結構
-
數組與鏈表的區別
-
數據結構中堆和棧的區別
-
用兩個棧實現一個隊列
算法題
-
排序算法
-
打印九九乘法表
-
圓環取數,從圓環里取m個數的最大值,規定每次不能取和上次相鄰的
-
先撕一道算法實現一個函數,給一個字符串返回出現最多的字符並返回其出現次數?講一下算法思路?以及如何去優化它?
-
給定一個字符串,輸出本字符串中只出現一次並且最靠前的那個位置(用dict,兩次遍歷,O(n))
-
有一個rand6()函數,均勻返回1-6之間的整數,通過rand6()實現rand10()能均勻返回1-10之間的整數。
-
兩個字符串,求一個字符串在另一個字符串中的索引(開始我以為是每個字符的索引,
寫完后,面試官說是整個字符串然后又改,最后寫的還是不夠全面,沒考慮異常情況)
-
100層樓,兩個玻璃球,實驗從那一層扔下去球不會破?
-
一棵樹兩個節點求他們的最近的公共父節點
-
1~n個數,找出所有和為M的序列,包括M本身。
-
遞增數組中找兩個數和為某個固定值。