Python面試QA
- 講講日常開發中都用到了那些Python內建的模組
一.語言
1.推薦一本看過較好的python書籍?
2.談談python的裝飾器,迭代器,yield?
3.標準庫執行緒安全的佇列是哪一個?不安全的是哪一個?logging是執行緒安全的嗎?
4.python適合的場景有哪些?當遇到計算密集型任務怎麼辦?
5.python高併發解決方案?我希望聽到twisted->tornado->gevent,能扯到golang,erlang更好
二.作業系統
可以直接認為是linux,畢竟搞後端的多數是和linux打交道。
1.tcp/udp的區別?tcp粘包是怎麼回事,如何處理?udp有粘包嗎?
2.time_wait是什麼情況?出現過多的close_wait可能是什麼原因?
3.epoll,select的區別?邊緣觸發,水平觸發區別?
三.儲存
儲存可能包含rdbms,nosql以及快取等,我以mysql,redis舉例
mysql相關
1.談談mysql字符集和排序規則?
2.varchar與char的區別是什麼?大小限制?utf8字符集下varchar較多能存多少個字元
3.primary key和unique的區別?
4.外來鍵有什麼用,是否該用外來鍵?外來鍵一定需要索引嗎?
5.myisam與innodb的區別?innodb的兩階段鎖定協議是什麼情況?
6.索引有什麼用,大致原理是什麼?設計索引有什麼注意點?
redis相關
1.什麼場景用redis,為什麼mysql不適合?
2.談談redis的事務?用事務模擬原子+1操作?原子操作還有其它解決方案嗎?
3.redis記憶體滿了會怎麼樣?
四.安全
web安全相關
1.sql注入是怎麼產生的,如何防止?
2.xss如何預防?htmlescape後能否避免xss?
3.csrf是什麼?django是如何防範的?
密碼技術
1.什麼是分組加密?加密模式有哪些?ecb和cbc模式有什麼區別?為什麼需要iv向量?
2.簡單說說https的過程?
3.對稱加密與非對稱加密區別?
3.如何生成共享祕鑰? 如何防範中間人攻擊?
五.雜
是否關注新技術啊?golang,rust是否瞭解?numpy,pandas是啥鳥?