百度某部門內推面試小記
之所以說某部門是因為面試官說他所在部門是做數據庫開發的(what ? ? ?),這搞得我真不知道這是什么部門了,就稱為DB部門吧~
1、自我介紹(blabla............我現在在科大訊飛實習)
2、你在訊飛實習做什么的?
答:我的工作是軟件開發工程師,做教育云相關的產品(網站)
3、你想從事的崗位是什么?
答:軟件開發工程師啊
詳細點,這只是個大方向?我們部門主要做數據庫相關開發你有興趣沒?你意向去哪個城市?
答:服務器開發相關的 網站什么的。可以的,有興趣。北京深圳(先順從再說。。。)
4、你主要會Java,說下java內存模型?
答:我從虛擬機/本地方法棧、方法區/堆(新生、老年、永久代)、程序計數器? 具體每個模塊細分成什么和存儲的什么數據? 展開敘述了一番,blabla.......
5、你說下有哪些垃圾回收算法?
答:4種,我從 標記-清除、復制算法(新生代)、標記-整理(老年代)、分代回收 分別敘述了思想以及他們各自優缺點以及應用場景。
6、給你設計一個垃圾回收器你會怎么設計?(問題大概是這樣)
答:我從? 以最短回收時間(其實我說的CMS垃圾回收器)為例,說了服務器端需要這種快速響應的回收機制;
and 設置閾值觸發回收條件回收,減少回收這一操作次數的減少資源消耗。又從上邊的垃圾回收算法為例展開說了不同場景運用不同回收算法。(說了這么多我也不知道我回答道他想獲得那個點沒有)
7、“==”和”equals” 區別?
我:(小case,blabla....)
8、switch條件里能不能用 char、String類型的?
答:可以(補充一下知識點:支持 byte、short、int、char、String,還有枚舉類型)
9、多態是什么?說下你理解的多態?
10、多態的怎么實現的,原理是什么?
答:動態綁定(具體是什么我沒說出來,需要復習)
11、給你設計一個高并發系統 你會考慮哪些?(印象中是這樣)
答:少數據庫讀寫,建緩存;分布式處理,多個結點處理 等等........(說的不是很全感覺不太好,我不敢說負載均衡怕他問 我不太會這個)
12、你接觸過哪些設計模式?
答:單例、代理、工廠、生產者消費者模式等等。。
你說下生產-消費者模式原理?以及應用場景?
答:從等待-通知機制說起,blabla......然后又說了阻塞隊列等等。。。
13、你平時開發環境是linux還是windows?了解linux不?
答:只了解linux一些基本查詢語句
你說下你平時都用到哪些?(我覺得他是想從我用的指令操作里這里看出我的linux功力,讓他失望....)
答:ls、rm、vi .....
14、說下tcp是怎么建立連接和釋放的?
答:從三次握手、四次揮手(重點是我說我通過抓包,看到fin這些標記什么的,看到真的是4次,然后分析了一波原因)展開,blabla.......
15、TCP都有哪些狀態???timewait(什么wait沒聽清)在什么時候產生?
答:(凌亂,我沒注意看,下去補一下.....)
16、進程的通信方式有哪些?
答:管道、信號、消息隊列、共享內存、信號量、套接字
17、套接字的tcp連接怎么連接的??
答:(忘了很多 我說的 客戶端connect、服務器等待循環accept)(mark 答得不是很好 下去復習一下 程序上和 具體底層函數)
18、你平時數據庫都是單機的?分布式數據庫知道嗎?
答:單機。(不是很清楚,正好聽過公司一哥們分享過mysql主從數據庫,然后說了下思想)分布式數據庫要保證數據同步,首先主數據庫數據改變要寫二進制日志文件,從數據庫開線程去讀取,然后保證數據庫同步.......( 下去要補習一下)
19、說下數據庫隔離級別?
答:4種 然后敘述了他們要解決 臟讀、不可重復讀、幻讀這些問題。
20、幻讀怎么解決?
答:我分析了不可重復讀和幻讀區別,設置隔離界別為“serializable”解決幻讀。
21、事物特性ACID是什么?
22、說下有哪些數據庫存儲引擎?
答:MyIsam、InnoDB、Memory.(我分別從他們基本特性不同說起,是否支持事務、行級鎖、外鍵什么的,最后我特意重點分析了他們兩個在索引實現上的區別)(其實我故意給自己挖個“坑”,讓他問我索引,結果真挖了個坑)
23、那現在有一張表,select * from? tabel1? where A=" ",B=" " and C=" " 和select * from? tabel1? where A=" ",B=" " and D=" " 那索引應該建在哪里?
24、知道UNION和UNION ALL嗎?
(只會join,這個以前沒用過沒在意。。。。。下去補下)
25、寫個sql語句查出這個表最后10條語句?
答:(按id逆序,limit1,10)
26、你知道MVCC是什么嗎?
答:不知道,好像是行級鎖嗎。。。(估計錯了,下去要補下)
27、寫個sql語句輸出這個表的建表語句?
答:(以前都沒在意這個,又怒送一人頭.....)
28、你簡歷上寫的優化sql語句,你怎么優化的?
答:(我在班門弄斧的感覺)where,on建索引、一些地方不用什么什么、避免全表搜索什么的等等,blabalab。。。。
29、說下堆排序、快速排序、歸并排序和他們的時間、空間復雜度?
答:(說錯了2個點。。。該打,補!補!補!)
30、你都知道哪些數據結構?
答:首先hash表(我想引導他問這個的然后說hashmap原理呢,結果他沒問)、鏈表、隊列、棧。。
31、(算法題)2個單鏈表怎么判斷他們是否有公共部分?
答:說了2種。從長的那個第(m-n)個同時遍歷到相同的說明相交;
或者遍歷到最后一個結點,最后一個結點相同,則相交。
32、(算法題)實現一個棧,除了基本的棧操作,還有能取到棧中元素最大值,時間復雜度要求為O(1)?
答:(沒想出來,不知道是不是題意我理解有誤)
33、你的簡歷里說你是搞機器學習的?你都研究哪塊?
答:貝葉斯、什么的我主要搞多示例分類
34、你說下貝葉斯思想,以及應用?
答:我說了以文本分類為例,分析了一波公式。
35、那你這些算法效果怎么樣呢?
答:(吹一波牛)從90%精度提高到95%+(反正他不知道。。然后接下來牛叉的來了)
36、那你這些是有監督的學習是吧?無監督的你怎么搞?
答:我主要搞有監督學習,無監督我了解的是balabla......(我偷換概念說了一波半監督。。。現在搞數據庫的都要學機器學習了???之前的面的開發測試面試官還問我“聚類”,現在是個百度er都要會機器學習了????)
37、你還有什么要問我的?
By 不苦? 2017.8.9