非科班普通本科是如何在人才輩出的年代成功入職阿里?(面試經(jīng)驗(yàn),建議收藏)

說(shuō)一說(shuō)作為我應(yīng)屆時(shí)的面試經(jīng)驗(yàn)吧,大概是投了7家最后過(guò)了一家。網(wǎng)易、騰訊、美團(tuán)、螞蟻金服、滴滴、京東、百度

我記得百度、騰訊和美團(tuán)簡(jiǎn)歷直接被篩選掉了。螞蟻金服、京東、滴滴分別在二面、一面、四面就掛了。后面就一直在準(zhǔn)備阿里的這根獨(dú)苗,準(zhǔn)備面試一起是將近一個(gè)月時(shí)間,每天除了睡覺(jué)就是刷題。可能沒(méi)有人知道這段時(shí)間我到底經(jīng)歷了什么

當(dāng)然最后所有的努力還是沒(méi)有白費(fèi),在最后的獨(dú)苗憑借著運(yùn)氣踏進(jìn)了阿里的大門(mén),作為非科班普通本科出門(mén)的我已經(jīng)非常滿(mǎn)足了

阿里一面

  1. 自我介紹(個(gè)人信息:一分鐘說(shuō)完了);
  2. 抽象類(lèi)和接口的區(qū)別(Java核心技術(shù):全部講了一通后,拋出第三個(gè)問(wèn)題)
  3. 抽象類(lèi)內(nèi)方法如果全部是抽象的,是不是就是接口?為什么有的類(lèi)繼承一個(gè)類(lèi)后,還要實(shí)現(xiàn)多個(gè)接口?(Java核心技術(shù):我說(shuō)了個(gè)接口隔離原則,實(shí)在不知道他想要啥答案)
  4. 多線(xiàn)程中,線(xiàn)程池用過(guò)哪些線(xiàn)程池?(多線(xiàn)程并發(fā):沒(méi)用過(guò),講了一些自己了解的);
  5. 線(xiàn)程池中所有的參數(shù)講解一下(多線(xiàn)程并發(fā):corePoolSize,maximumPoolSize,F(xiàn)actory之類(lèi)的扯了一通)
  6. 線(xiàn)程池中從corePoolSize到maximumPoolSize轉(zhuǎn)變過(guò)程,然后一直問(wèn)我反向轉(zhuǎn)變的操作(多線(xiàn)程并發(fā):就是并發(fā)量突然降低了,這個(gè)過(guò)程怎么實(shí)現(xiàn)的,參數(shù)如何變化)
  7. HTTP發(fā)送請(qǐng)求和接收響應(yīng)的整個(gè)流程;(web技術(shù):扯了一下客戶(hù)端和服務(wù)端之間的流程)
  8. 403和500狀態(tài)分別講解一下,他們之間有什么區(qū)別;(web技術(shù))
  9. 淘寶里如果按照1-5星的店面,從五家店里一共推送出10個(gè)同一類(lèi)產(chǎn)品,都是隨機(jī)推送,但是最后大量的隨機(jī)測(cè)試后,要保證五顆星的店家推送的商品數(shù)量大概是一顆星店家推送的商品數(shù)量的五倍,且不能破壞其他概率輸出(思維能力:這個(gè)問(wèn)題跟他討論了有10幾分鐘,最后他問(wèn)我有沒(méi)有優(yōu)化。。。我哪知道怎么優(yōu)化)
  10. 一個(gè)已知存儲(chǔ)了數(shù)據(jù)的HashMap中如何讓所有的鍵修改成"阿里+原來(lái)的鍵",意思是在所有的key中添加"網(wǎng)易"這個(gè)前綴。(Java核心技術(shù):我說(shuō)迭代處理,但是會(huì)有fail-fast問(wèn)題,然后我就瞎扯了同步操作一下)
  11. spring的AOP原理和底層實(shí)現(xiàn)(框架技術(shù):扯了一下概念和反射機(jī)制)
  12. Spring的注解講一下;(框架技術(shù))
  13. 靜態(tài)代理和動(dòng)態(tài)代理區(qū)別講一下;(Java核心技術(shù))
  14. 靜態(tài)代理和適配器設(shè)計(jì)模式的區(qū)別;(Java核心技術(shù))
  15. tcp和udp的區(qū)別;(計(jì)算機(jī)網(wǎng)絡(luò)知識(shí):就從可靠性,通訊方式,數(shù)據(jù)大小,應(yīng)用方面說(shuō)了說(shuō))
  16. cglib底層實(shí)現(xiàn);(框架技術(shù):懵逼)
  17. 數(shù)據(jù)庫(kù)的樂(lè)觀鎖原理和實(shí)現(xiàn);(數(shù)據(jù)庫(kù):懵逼)

阿里二面

  1. 上來(lái)問(wèn)我項(xiàng)目用的框架,然后問(wèn)我springmvc里面有的參數(shù)的設(shè)定,問(wèn)的是細(xì)節(jié),然后問(wèn)我如果傳的多個(gè)值是一個(gè)對(duì)象的屬性,問(wèn)我如何處理,我說(shuō)直接在后端接收為對(duì)象就行了,然后突然問(wèn)我http怎么傳對(duì)象,這里有點(diǎn)不明白面試官想問(wèn)啥,然后就換別的問(wèn)題了,可以序列化對(duì)象為二進(jìn)制數(shù)據(jù),然后在http1.1以上版本傳輸即可,然后再進(jìn)行反序列化
  2. 數(shù)據(jù)庫(kù)索引都有哪些,介紹一下,然后面試官就問(wèn)我說(shuō)話(huà)的漏洞,感覺(jué)會(huì)抓住某一個(gè)比較突出的詞來(lái)逼問(wèn),這里除非特別清楚,否則就被問(wèn)死了,我這里有點(diǎn)虛,回答的有點(diǎn)猶豫, b+樹(shù),hash索引,b樹(shù)索引
  3. 數(shù)據(jù)庫(kù)事務(wù),然后問(wèn)我mysql三個(gè)select不顯式聲明事務(wù),他們每一條是個(gè)事務(wù)嗎?這里記得有點(diǎn)不清楚,就是問(wèn)不顯式聲明事務(wù),select是一個(gè)事務(wù)嗎 默認(rèn)autocommit,每一條都是是一個(gè)事務(wù)
  4. 樂(lè)觀鎖和悲觀鎖,我說(shuō)到了cas,然后問(wèn)我java中有哪些地方用到了cas,然后我說(shuō)concurrenthashmap,然后是咋用的,這個(gè)類(lèi)是怎么保證線(xiàn)程安全的,他還說(shuō)了一個(gè)put啥東西我沒(méi)注意,就說(shuō)不知道。 chm,原子類(lèi),AQS等。
  5. chm在put操作沒(méi)有沖突時(shí)進(jìn)行cas嘗試,直到成功。
  6. 原子類(lèi)使用cas執(zhí)行自加自減操作防止并發(fā)問(wèn)題。
  7. AQS的修改state也是使用了cas操作。
  8. 問(wèn)我序列化,然后問(wèn)到了遠(yuǎn)程方法調(diào)用,我說(shuō)沒(méi)接觸過(guò) 序列化主要是把對(duì)象壓縮成二進(jìn)制數(shù)據(jù),進(jìn)行網(wǎng)絡(luò)傳輸,rpc就是基于序列化和網(wǎng)絡(luò)通信編程實(shí)現(xiàn)的。
  9. 問(wèn)我項(xiàng)目是練手還是買(mǎi)錢(qián),他笑著對(duì)我說(shuō),我也笑了
  10. dao層是model層嗎?這個(gè)以前沒(méi)注意,就說(shuō)是,也不知道對(duì)不對(duì),記得以前面試好像有面試官問(wèn)我model和pojo的區(qū)別
    差遠(yuǎn)了。dao是數(shù)據(jù)持久化層,負(fù)責(zé)數(shù)據(jù)庫(kù)操作,model負(fù)責(zé)數(shù)據(jù)模型
  11. 索引在什么情況下會(huì)失效,這個(gè)當(dāng)時(shí)有點(diǎn)激動(dòng),想了一下沒(méi)說(shuō)出來(lái),有點(diǎn)遺憾, 前綴匹配,沒(méi)用用到,函數(shù),判空,<>等

阿里三面

  1. 簡(jiǎn)單說(shuō)說(shuō)在學(xué)校做過(guò)最有成就感的事情(和技術(shù)相關(guān)的)
  2. 開(kāi)發(fā)了一款游戲,搭了一個(gè)人博客,寫(xiě)了博客集,做了3個(gè)項(xiàng)目。并且在GitHub上有長(zhǎng)期記錄。
  3. 你的項(xiàng)目用到了數(shù)據(jù)庫(kù),談?wù)剬?duì)事務(wù)的理解
  4. 事務(wù)保證一致性,原子性,隔離性和持久性。
  5. 假設(shè)你要做一個(gè)銀行app,有可能碰到多個(gè)人同時(shí)向一個(gè)賬戶(hù)打錢(qián)的情況,有可能碰到什么問(wèn)題,如何解決(鎖)
  6. 可能到時(shí)同時(shí)修改,導(dǎo)致有人修改失敗,匯款出現(xiàn)問(wèn)題,解決方式就是事務(wù)或者使用鎖。
  7. 說(shuō)說(shuō)樂(lè)觀鎖和悲觀鎖
  8. 樂(lè)觀鎖在數(shù)據(jù)庫(kù)中就是MVCC,悲觀鎖就是行鎖和表鎖。innodb支持行鎖,在索引上加鎖
  9. 最近在看什么書(shū)
  10. 大數(shù)據(jù),zookeeper,netty。大型中間件,大型分布式,大型網(wǎng)站
  11. Java基礎(chǔ)(就問(wèn)了一句==和equals)
  12. 說(shuō)說(shuō)現(xiàn)在能寫(xiě)出來(lái)哪些排序算法
  13. 在學(xué)校有沒(méi)有參加社團(tuán)之類(lèi)的
  14. 給定一個(gè)文件名,如何在d盤(pán)找出來(lái)這個(gè)文件,說(shuō)說(shuō)思路。
  15. 使用操作系統(tǒng)查找。find -name,locate,whereis

阿里四面

  1. 自我介紹
  2. 項(xiàng)目介紹
  3. 做這個(gè)項(xiàng)目的動(dòng)機(jī)
  4. TCP UDP IP ICMP
  5. 知不知道一個(gè)應(yīng)用層協(xié)議,運(yùn)輸層既沒(méi)有使用TCP,也沒(méi)有使用UDP
  6. 二叉樹(shù)中求最長(zhǎng)路徑。
  7. 遞歸的方式去實(shí)現(xiàn)。
  8. 有什么想問(wèn)我的嗎?

五面(HR面)

  1. 平常怎么學(xué)習(xí)的
  2. 興趣愛(ài)好
  3. 覺(jué)得自己前面幾輪面試怎么樣
  4. 除了Java還研究過(guò)其它什么技術(shù)(我說(shuō)AI,區(qū)塊鏈)
  5. 跟我介紹一下區(qū)塊鏈~
  6. 怎么看待國(guó)內(nèi)區(qū)塊鏈的發(fā)展
  7. 跟我說(shuō)一下你認(rèn)為最具有挑戰(zhàn)性的項(xiàng)目
  8. 問(wèn)我還參加了什么公司的招聘
  9. 如果有網(wǎng)易游戲,騰訊,阿里的offer你會(huì)選擇哪個(gè)
  10. 英語(yǔ)10分鐘交流(瞬間懵了,這里估計(jì)是部門(mén)有英語(yǔ)交流要求)

愿各位早日拿到心儀的offer,我是大仙,歡迎大家關(guān)注我!!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容