最近有很多朋友去目前主流的大型互聯(lián)網(wǎng)公司面試(阿里巴巴、京東-美團(tuán)),面試回來(lái)之后會(huì)發(fā)給我一些面試題。有些朋友輕松過關(guān)拿到offer,但是有一些是來(lái)詢問我答案的。 其實(shí)本來(lái)真的沒打算寫這篇文章,主要是自己得記憶力不是很好,不像一些記憶力強(qiáng)的人,面試完以后,幾乎能把自己和面試官的對(duì)話都給記下來(lái)。自己當(dāng)初面試完以后,除了記住一些聊過的知識(shí)點(diǎn)以外,具體的內(nèi)容基本上忘得一干二凈,所以寫這篇文章其實(shí)是很有難度的。 但是,最近問我的人實(shí)在是太多了,為了避免重復(fù)回答,給自己省點(diǎn)力氣,干脆就在這里統(tǒng)一回復(fù)了。 說(shuō)實(shí)話,我只能隱約想起高并發(fā)、JVM、分布式跟TCP/IP協(xié)議這些個(gè)關(guān)鍵字,具體的問題真的是幾乎都沒記住。而且就算我記住了,也告訴你了,你也背會(huì)了,但我覺得,在面試中,你被問到一模一樣問題的可能性依然很小。 甚至就算你運(yùn)氣好被問到了,你也照著背下來(lái)了,也不一定就能對(duì)你的面試起到正面的作用,因?yàn)槊嬖嚬偃f(wàn)一多問一句,你可能就露餡了,那還不如干脆點(diǎn)說(shuō)不會(huì)更好。 在此給大家講一下大型互聯(lián)網(wǎng)企業(yè)面試題。 京東面試(未通過):一面: 1.離職原因; 2.Zookeeper在項(xiàng)目中的使用及原理; 3.Springcloud的一些組件介紹; 4.分布式鎖: Redis實(shí)現(xiàn)方式: redis:為什么使用setnx,或者說(shuō)set 和setNx有什么區(qū)別; setNx:系統(tǒng)在10:05 設(shè)置一個(gè)值,并給出5分鐘的過期時(shí)間,系統(tǒng)剛剛set完之后redis集群崩潰,10:11分系統(tǒng)重啟成功,那么redis中set的值是否還存在? 考察點(diǎn): 1、redis 的持久化:剛set完是否能夠被持久化到快照或者binlog日志中; 2、假設(shè)redis被持久化,且系統(tǒng)重啟時(shí)間超過了redis設(shè)置的過期時(shí)間,那么key是否會(huì)被清理; zookeeper實(shí)現(xiàn)方式: 5.多線程的創(chuàng)建方式: 1、繼承thread類; 2、實(shí)現(xiàn)runnable接口; 3、實(shí)現(xiàn)callable接口; 4、線程池方式進(jìn)行創(chuàng)建及每個(gè)參數(shù)之間的邏輯關(guān)系; 6.服務(wù)器CPU數(shù)量及線程池?cái)?shù)量的關(guān)系; 1、服務(wù)器cpu數(shù)量(n); 2、是IO密集型(2n個(gè)線程)應(yīng)用還是計(jì)算密集型(n+1個(gè)線程)應(yīng)用; 7.Mysql的sql優(yōu)化 優(yōu)化方向: 1、Mysql使用過程中走索引的語(yǔ)句: 2、索引的優(yōu)化: 3、億級(jí)的數(shù)據(jù)必須使用like進(jìn)行查詢,如何優(yōu)化? 8.如何做一個(gè)秒殺系統(tǒng); 1、MQ做限流:保證只有1000個(gè)人可以訪問系統(tǒng); 2、使用redis做緩存; 3、redis往mysql中進(jìn)行持久化 9.自己認(rèn)為自己的技術(shù)怎么樣? 二面: 1.Mysql是集群還是單節(jié)點(diǎn);最大的表中數(shù)據(jù)量大約是多少?3000w-4000w; 2.Mysql主從配置是DBA去做還是自己去做?mysql主從同步的機(jī)制的原理?mysql主從復(fù)制主要有幾種模式? 3.Redis持久化方式:rdb、aof;redis中哪個(gè)版本開始可以對(duì)分布式使用; 4.Nginx的使用場(chǎng)景; 1、請(qǐng)求轉(zhuǎn)發(fā); 2、負(fù)載均衡; 5.Spark主要用來(lái)做什么的? 6.前端了解么:JavaScript有沒有閉包的概念? 7.離職原因? 字節(jié)跳動(dòng)(已拿offer)一面二面(一面二面只隔了10分鐘,就放一起說(shuō)吧) 1、C++多態(tài)實(shí)現(xiàn)機(jī)制 2、引用和指針的區(qū)別 3、如何讓引用中途改變指向 4、引用可以實(shí)現(xiàn)運(yùn)行期多態(tài)嗎?如何實(shí)現(xiàn)?舉個(gè)例子 5、虛指針放在哪?自己實(shí)踐探究過嗎? 6、棧的大小一般是多少?跟什么有關(guān)? 7、四次揮手什么時(shí)候回退化為三次?抓過包嗎?工具?為什么抓包? 8、虛擬內(nèi)存是怎么回事? 9、select poll epoll底層實(shí)現(xiàn)?哪種好?為什么好? 10、紅黑樹了解嗎?索引為什么不用紅黑樹?B+樹的優(yōu)點(diǎn)是什么? 11、幻讀是怎么回事?如何保證一致性? 12、對(duì)于緩存一致性你怎么看?怎么避免臟數(shù)據(jù)? 13、Redis緩存雪崩、緩存穿透是怎么回事? 14、Redis 6種數(shù)據(jù)淘汰機(jī)制?AOF重寫的過程? 15、Redis底層網(wǎng)絡(luò)模型?在Linux和 Windows下各是什么模型 16、OS中外碎片內(nèi)碎片?區(qū)別?怎么回收? 代碼題: 1、兩個(gè)有序鏈表合并,我寫了個(gè)棧上開辟輔助空間的版本,面試官給了個(gè)贊… 2、鏈表元素交換,第1位和第2位交換,第3位和第4位交換 、、、、強(qiáng)調(diào) 需要考慮鏈表中奇偶元素個(gè)數(shù)。比如1->2->3->4->5 ,輸出 2->1->4->3->5。 后來(lái)又讓我封裝一下交換函數(shù)和鏈表初始化函數(shù),比如主函數(shù)輸入 奇數(shù)9 ,自動(dòng)生成鏈表 1->2->3->4->5->6->7->8->9,然后調(diào)用轉(zhuǎn)換函數(shù)生成 2->1->4->3->6->5->8->7->9 3、島嶼數(shù)量問題。 三面: 1、介紹自己 2、介紹項(xiàng)目 3、項(xiàng)目是一個(gè)成熟的demo了嗎?測(cè)試環(huán)節(jié)是怎么做的?有沒有改進(jìn) 4、個(gè)人優(yōu)勢(shì)劣勢(shì)介紹 5、智力題:騰訊賽馬問題:25匹馬,5個(gè)賽道,沒有計(jì)數(shù)器,找出跑的最快的Top3,最少需要多少次 6、下樓梯,走兩步或者走一步,問一共多少種方案。跟小青蛙跳樓梯差不多 。 7、如何判斷鏈表有環(huán)?怎么找出來(lái) ?最短時(shí)間復(fù)雜度怎么做? 8、意向工作地? 9、反問 四面 1、介紹自己 2、介紹實(shí)習(xí)經(jīng)歷,收獲是什么?在接下來(lái)的生活學(xué)習(xí)中,那段收獲有沒有幫助你? 3、學(xué)校經(jīng)歷?看你有過IT類比賽,是什么情況? 4、團(tuán)隊(duì)比賽中,有沒有遇到什么問題?溝通上融洽嗎?怎么解決 5、平常有什么跟IT無(wú)關(guān)的活動(dòng)嗎? 6、意向城市?我想聽真實(shí)想法… 7、反問 碎碎念可能有些人會(huì)問,這些書你都看了嗎?這也太多了之類的?其實(shí)看著挺多,慢慢學(xué)慢慢看,慢慢的就會(huì)有收獲了,如果你像我一樣學(xué)校不太好,不是什么重點(diǎn)學(xué)?;蛘卟皇怯?jì)算機(jī)專業(yè)的,那么請(qǐng)你笨鳥先飛。 最后:以上的面試經(jīng)歷只是其中的一部分,還有挺多面試筆記的,還有一些關(guān)于大廠面試常問的一些問題和一些網(wǎng)上比較下載比較高的電子書籍
|