【名企面試經驗-百度-校招提前批】【研發工程師】

Offer
一面(1.8H):
1、自我介紹
2、進程與線程的區別
3、說說線程池,線程池的線程數量是固定的嗎?有哪些參數?
4、說說JVM是怎麼分區的
5、垃圾回收主要是對哪些區進行回收
6、說說垃圾回收有哪些算法
7、說說老年代採用的那種垃圾回收算法
8、說說是如何找到垃圾的
9、HDFS寫文件是怎樣一個流程,假設現在我要寫的文件只有1kb,那是新增一個塊,還是如何?
10、在HDFS寫文件的時候假設需要寫的節點是ABC,是怎樣一個寫的過程?在這個過程中B如果突然down掉,HDFS是如何解決這個問題的?
11、HDFS訪問文件是怎樣一個流程?(先通過NameNode去查找元數據,看看要訪問的文件是在哪些DataNode上,然後返回對應DataNode的地址,然後客戶端再根據地址去查)
12、Zookeeper的機制,腦裂,Zookeeper完全解決腦裂的問題了麼?如果HDFS兩個服務器去競爭主節點有沒有可能發生腦裂的現象?
13、通過Zookeeper競選主從節點的時候,創建的是什麼節點?如果主節點down掉,其他節點是如何知道的?
14、寫一個二叉樹的最短葉子節點高度 限時10分鐘
15、瞭解哪些頁面置換算法?給你一個get(key),set(key) 寫一個簡單的LRU算法。(我開始用了兩個棧,面試官看了說你再優化一下,我把兩個棧替換成鏈表,面試官說差不多就是這樣實現的)。
16、說收項目,OLAP是什麼?預處理嗎?
17、使用Zookeeper對Hbase進行集羣管理,我可以理解爲對Zookeeper做了配置嗎?
18、說說你在項目中是怎樣處理數據集的?都有哪些字段?
19、說一下四次揮手都發了哪些包?說一下每種狀態,爲什麼最後一次還需要time_wait狀態?

二面(2H):
1、自我介紹
2、Openstack中對哪些組件比較熟
3、瞭解Nova組件內部的結構嗎?
4、說說nova在創建kvm虛擬機的整個流程
5、Nova-scheduler在進行weight的時候,爲什麼要默認按內存打分而不是以vcpu的個數作爲權重
6、爲什麼overcommit可以實現,如果虛擬機overcommit內存不夠的話怎麼辦?
7、爲什麼之前操作數據庫可以通過計算節點的nova-compute上直接操作,爲什麼現在要用nova-conductor去操作?回答:這樣做降低被攻擊的危險,以及組件之間解耦合和在大量數據庫操作產生的時候可以通過增加nova-conductor數量。又追問:爲什麼nova-compute直接操作數據庫被攻擊的危險性比較大呢?
8、你對虛擬化網絡很瞭解對吧?那你說說linux-bridge如何支持Vxlan的
9、說說VETP是怎麼知道別人發給自己的數據包是它自己該接收的?
10、vxlan的標籤是打在udp包裏的嗎?是什麼時候打的?是數據庫從kvm虛擬機出來的時候還是數據包到linux-beidge上的時候,還是到虛擬路由器上的時候?還是從物理機網卡出去的時候……
11、爲什麼要有Vxlan?回答了Vxlan相對於vlan的好處。又問:如果當前場景這些好處都沒有,那是不是不需要Vxlan了…….
12、說說java線程池吧,整個流程是怎麼樣的?回答完之後,又追問:爲什麼要有線程池,解決了什麼問題。回答完之後,又追問:爲什麼線程池有默認大小?這個大小是從哪裏來的?可以不要這個參數不?爲什麼?你知道C++線程池不…..
13、我們做道題吧:三個線程ABC,A線程打印A,B線程打印B、C線程打印C,順序不能亂,打印出來的順序必須是ABCABCABC….. ABC三個線程總共打印100次。 我用了一個變量控制打印次數,用了信號量保證了ABC的順序,代碼寫完後,面試官說:請證明你這個代碼的正確性… 回答:可以舉例子證明嗎? 面試官:不可以。
14、說說線程之間通信有哪些方式?回答完,又追問,那你在Java中用了哪些方式呢?我說java裏面就用過syc,Lock還有JUC下的一些工具類。
15、知道讀寫鎖嗎?如果有10個讀線程,這個時候來了一個寫線程,如果處理?
16、爲什麼有了syc還要有Lock?區別是什麼?我回答了Lock的一個實現類Reentrantlock是通過CAS自旋來實現鎖的(這個地方我答得不好,因爲對Reentrantlock不熟)
17、說說虛擬機是如何發送和接受數據包的,要經過哪些設備?回答到一半,面試官追問:端口不用改嗎?如果這個時候宿主機中兩臺虛擬機,用的一個端口比如說80,不會發生串包嗎?
18、再做一道題吧:兩個你可以認爲是無限長的數字,求和,其實就是大數求和。

三面(1H):
1、自我介紹
2、對Openstack瞭解到什麼程度?說一下Nova內部組件
3、你覺得Nova-filer的weight除了通過內存以外,還有哪些東西可以拿來filter?答:vCpu、磁盤大小等。如果用磁盤大小去做Filter,如何解決碎片問題?因爲可能一個文件4GB,每天機器都不夠,但是總的磁盤空間夠?答:用HDFS分佈式存儲,這樣不用把一個文件存儲在某一臺節點上。如果就讓你存,不用HDFS該怎樣去調度?答:可以採用操作系統中對內存管理的那樣,最佳適用法,將所有服務器上的剩餘磁盤空間排序,分配文件的時候去尋找剛好能存下這個文件的機器。問:這樣是解決了內存碎片問題,那會帶來其他什麼問題嗎?答:不知道…… 解釋:會出現文件只分配在少數幾臺服務器上,這樣的話造成了集羣內部分機器直接空閒。
4、JVM垃圾回收算法瞭解嗎?JVM爲什麼要分爲新生代和老年代?新生代是怎麼清理垃圾的?如果這個時候HBase的某個服務調動失敗了,你覺得會是什麼原因造成的?答:我覺得是發生了Major GC 造成stop the world,運行的服務被暫停了。問:那如何調優呢?答:可以採用CMG垃圾回收器,他一共分爲四個階段的垃圾回收,只會有兩個步驟發生stop the world,其他清理過程和java運行程序是同時進行的。問:那不用CMG,具體調優接觸過嗎?
5、做一道算法題:給一個字符串,去掉字符串內的數字,要求直接在字符串上做。我問:Java 的String是final類型的不可能直接在字符串上做。面試官:那你用char[]這種基本類型做。做了一個時間複雜度n平方的,問怎麼改進,說了改進方法後,改進後達到了O(n),面試官也沒再讓我把這個代碼手寫出來了。
6、最近看過什麼書沒有?

現在是2018年9月,我現在在電子科技大學剛剛研三,由於學的東西比較雜,Java後端,大數據,雲計算都有涉獵,所以找的工作職位也有所不同,校招提前批拿了還算不少也不錯的Offer,下面是一些相關的面試經驗,希望能對大家有一些幫助:
19屆校招:
【名企面試經驗-百度-校招提前批】【研發工程師】
【名企面試經驗-新浪-校招提前批】【數據平臺研發工程師】
【名企面試經驗-阿里-校招提前批】【Java後端工程師】
【名企面試經驗-網易遊戲-校招提前批】【SDK遊戲服務端研發工程師】
【名企面試經驗-小米-校招提前批】【Java研發工程師】
【名企面試經驗-360-校招提前批】【大數據研發工程師】
【名企面試經驗-順豐-校招提前批】【Java後端研發工程師】
【名企面試經驗-快手-校招提前批】【Java研發工程師】
19屆實習:
【名企面試經驗-京東-實習】【後臺開發工程師】
【名企面試經驗-新浪微博-實習】【Feed研發工程師】
【名企面試經驗-滴滴-實習】【Java後端】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章