python-面試QA
語言
- 講講日常開發中都用到了那些Python內建的模組
- 推薦一本看過較好的python書籍?
- 裝飾器、迭代器、yeild的理解
- 高階函式、內建模組的使用
- 超程式設計、魔術方法、併發的理解
- Python直譯器執行機制
- 垃圾回收原理
- 多執行緒,GIL
- 標準庫執行緒安全的佇列是哪一個?不安全的是哪一個?logging是執行緒安全嗎?
- py適合的場景有哪些?當遇到計算密集性任務怎麼辦?
作業系統
- tcp/udp的區別,tcp粘包是什麼回事,如何處理?udp有粘包嗎?
- time_wait是什麼情況?出現過多的close——wait可能是什麼的原因?
- epoll,selete的區別。邊緣觸發,水平觸發區別。
儲存
mysql,redis。記憶體包含rdbms、nosql及快取。
mysql:
- mysql字符集和排序規則
- varchar與char的區別,大小限制。utf8字符集下的varchar較多能存多少個字元?
- primary key和unique的區別
- 外來鍵有什麼用,是否該用外來鍵。外來鍵需要索引嗎?
- myisam與innodb的區別。innodb的兩階段鎖定協議是什麼情況?
- 索引有什麼用,大致原理是什麼?設計索引有什麼注意點?
redis:
- 什麼場景用redis,為什麼mysql不適合?
- redis的事務,事物模擬原子+1操作?原子操作還有其他的解決方案嗎?
- redis記憶體滿了怎麼辦?
安全
web安全:
- sql注入怎麼產生,如何防止?
- xss如何預防?htmlescape後能否避免xss?
- csrf是什麼?django是如何預防的?
密碼技術
- 什麼是分組加密,加密模式有哪些?ecb、cbc模式有什麼區別?為什麼需要iv向量?
- 簡述https的過程
- 對稱加密與非對稱加密區別?
- 如何生成共享金鑰?如何防範中間人攻擊?
雜
- 是否關注新技術啊?golang,rust是否瞭解?numpy,pandas是啥鳥?
模組,包,庫,框架和容器(資料結構)
裝飾器、迭代器和yeild是什麼?
A:1、同一個類下,呼叫巢狀函式(即裝飾器),作為前置限制說明,傳遞函式的引數,提供某個生命週期的作用域。
2、iterable = iterator(argumeng){for迴圈語句等使variable增大的程式碼塊}。呼叫含for語句的巢狀函式或類,相當於迴圈語句的拓展。
3、生成器generator = yield(argment),引數為函式。yield的出現為了控制記憶體佔用,避免迭代過多。
反射是什麼?
“耍流氓的方式”
getattr,hasattr,setattr,delattr,獲取、查詢、設定、刪除成員
資料型別:
引數argument
形參parameter=*arg/ 僅傳一個引數
物件object
變數variable
可迭代iterable