說一說作為我應(yīng)屆時的面試經(jīng)驗吧,大概是投了7家最后過了一家。網(wǎng)易、騰訊、美團、螞蟻金服、滴滴、京東、百度
我記得百度、騰訊和美團簡歷直接被篩選掉了。螞蟻金服、京東、滴滴分別在二面、一面、四面就掛了。后面就一直在準備阿里的這根獨苗,準備面試一起是將近一個月時間,每天除了睡覺就是刷題??赡軟]有人知道這段時間我到底經(jīng)歷了什么
當然最后所有的努力還是沒有白費,在最后的獨苗憑借著運氣踏進了阿里的大門,作為非科班普通本科出門的我已經(jīng)非常滿足了
阿里一面
- 自我介紹(個人信息:一分鐘說完了);
- 抽象類和接口的區(qū)別(Java核心技術(shù):全部講了一通后,拋出第三個問題)
- 抽象類內(nèi)方法如果全部是抽象的,是不是就是接口?為什么有的類繼承一個類后,還要實現(xiàn)多個接口?(Java核心技術(shù):我說了個接口隔離原則,實在不知道他想要啥答案)
- 多線程中,線程池用過哪些線程池?(多線程并發(fā):沒用過,講了一些自己了解的);
- 線程池中所有的參數(shù)講解一下(多線程并發(fā):corePoolSize,maximumPoolSize,F(xiàn)actory之類的扯了一通)
- 線程池中從corePoolSize到maximumPoolSize轉(zhuǎn)變過程,然后一直問我反向轉(zhuǎn)變的操作(多線程并發(fā):就是并發(fā)量突然降低了,這個過程怎么實現(xiàn)的,參數(shù)如何變化)
- HTTP發(fā)送請求和接收響應(yīng)的整個流程;(web技術(shù):扯了一下客戶端和服務(wù)端之間的流程)
- 403和500狀態(tài)分別講解一下,他們之間有什么區(qū)別;(web技術(shù))
- 淘寶里如果按照1-5星的店面,從五家店里一共推送出10個同一類產(chǎn)品,都是隨機推送,但是最后大量的隨機測試后,要保證五顆星的店家推送的商品數(shù)量大概是一顆星店家推送的商品數(shù)量的五倍,且不能破壞其他概率輸出(思維能力:這個問題跟他討論了有10幾分鐘,最后他問我有沒有優(yōu)化。。。我哪知道怎么優(yōu)化)
- 一個已知存儲了數(shù)據(jù)的HashMap中如何讓所有的鍵修改成"阿里+原來的鍵",意思是在所有的key中添加"網(wǎng)易"這個前綴。(Java核心技術(shù):我說迭代處理,但是會有fail-fast問題,然后我就瞎扯了同步操作一下)
- spring的AOP原理和底層實現(xiàn)(框架技術(shù):扯了一下概念和反射機制)
- Spring的注解講一下;(框架技術(shù))
- 靜態(tài)代理和動態(tài)代理區(qū)別講一下;(Java核心技術(shù))
- 靜態(tài)代理和適配器設(shè)計模式的區(qū)別;(Java核心技術(shù))
- tcp和udp的區(qū)別;(計算機網(wǎng)絡(luò)知識:就從可靠性,通訊方式,數(shù)據(jù)大小,應(yīng)用方面說了說)
- cglib底層實現(xiàn);(框架技術(shù):懵逼)
- 數(shù)據(jù)庫的樂觀鎖原理和實現(xiàn);(數(shù)據(jù)庫:懵逼)
阿里二面
- 上來問我項目用的框架,然后問我springmvc里面有的參數(shù)的設(shè)定,問的是細節(jié),然后問我如果傳的多個值是一個對象的屬性,問我如何處理,我說直接在后端接收為對象就行了,然后突然問我http怎么傳對象,這里有點不明白面試官想問啥,然后就換別的問題了,可以序列化對象為二進制數(shù)據(jù),然后在http1.1以上版本傳輸即可,然后再進行反序列化
- 數(shù)據(jù)庫索引都有哪些,介紹一下,然后面試官就問我說話的漏洞,感覺會抓住某一個比較突出的詞來逼問,這里除非特別清楚,否則就被問死了,我這里有點虛,回答的有點猶豫, b+樹,hash索引,b樹索引
- 數(shù)據(jù)庫事務(wù),然后問我mysql三個select不顯式聲明事務(wù),他們每一條是個事務(wù)嗎?這里記得有點不清楚,就是問不顯式聲明事務(wù),select是一個事務(wù)嗎 默認autocommit,每一條都是是一個事務(wù)
- 樂觀鎖和悲觀鎖,我說到了cas,然后問我java中有哪些地方用到了cas,然后我說concurrenthashmap,然后是咋用的,這個類是怎么保證線程安全的,他還說了一個put啥東西我沒注意,就說不知道。 chm,原子類,AQS等。
- chm在put操作沒有沖突時進行cas嘗試,直到成功。
- 原子類使用cas執(zhí)行自加自減操作防止并發(fā)問題。
- AQS的修改state也是使用了cas操作。
- 問我序列化,然后問到了遠程方法調(diào)用,我說沒接觸過 序列化主要是把對象壓縮成二進制數(shù)據(jù),進行網(wǎng)絡(luò)傳輸,rpc就是基于序列化和網(wǎng)絡(luò)通信編程實現(xiàn)的。
- 問我項目是練手還是買錢,他笑著對我說,我也笑了
- dao層是model層嗎?這個以前沒注意,就說是,也不知道對不對,記得以前面試好像有面試官問我model和pojo的區(qū)別
差遠了。dao是數(shù)據(jù)持久化層,負責(zé)數(shù)據(jù)庫操作,model負責(zé)數(shù)據(jù)模型 - 索引在什么情況下會失效,這個當時有點激動,想了一下沒說出來,有點遺憾, 前綴匹配,沒用用到,函數(shù),判空,<>等
阿里三面
- 簡單說說在學(xué)校做過最有成就感的事情(和技術(shù)相關(guān)的)
- 開發(fā)了一款游戲,搭了一個人博客,寫了博客集,做了3個項目。并且在GitHub上有長期記錄。
- 你的項目用到了數(shù)據(jù)庫,談?wù)剬κ聞?wù)的理解
- 事務(wù)保證一致性,原子性,隔離性和持久性。
- 假設(shè)你要做一個銀行app,有可能碰到多個人同時向一個賬戶打錢的情況,有可能碰到什么問題,如何解決(鎖)
- 可能到時同時修改,導(dǎo)致有人修改失敗,匯款出現(xiàn)問題,解決方式就是事務(wù)或者使用鎖。
- 說說樂觀鎖和悲觀鎖
- 樂觀鎖在數(shù)據(jù)庫中就是MVCC,悲觀鎖就是行鎖和表鎖。innodb支持行鎖,在索引上加鎖
- 最近在看什么書
- 大數(shù)據(jù),zookeeper,netty。大型中間件,大型分布式,大型網(wǎng)站
- Java基礎(chǔ)(就問了一句==和equals)
- 說說現(xiàn)在能寫出來哪些排序算法
- 在學(xué)校有沒有參加社團之類的
- 給定一個文件名,如何在d盤找出來這個文件,說說思路。
- 使用操作系統(tǒng)查找。find -name,locate,whereis
阿里四面
- 自我介紹
- 項目介紹
- 做這個項目的動機
- TCP UDP IP ICMP
- 知不知道一個應(yīng)用層協(xié)議,運輸層既沒有使用TCP,也沒有使用UDP
- 二叉樹中求最長路徑。
- 遞歸的方式去實現(xiàn)。
- 有什么想問我的嗎?
五面(HR面)
- 平常怎么學(xué)習(xí)的
- 興趣愛好
- 覺得自己前面幾輪面試怎么樣
- 除了Java還研究過其它什么技術(shù)(我說AI,區(qū)塊鏈)
- 跟我介紹一下區(qū)塊鏈~
- 怎么看待國內(nèi)區(qū)塊鏈的發(fā)展
- 跟我說一下你認為最具有挑戰(zhàn)性的項目
- 問我還參加了什么公司的招聘
- 如果有網(wǎng)易游戲,騰訊,阿里的offer你會選擇哪個
- 英語10分鐘交流(瞬間懵了,這里估計是部門有英語交流要求)
愿各位早日拿到心儀的offer,我是大仙,歡迎大家關(guān)注我?。?/strong>