臥底阿里、京東、美團,Java程式設計師為大家帶回來的面試題
面試,難還是不難?最終結果好還是不好?取決於面試者的底蘊(氣場+技能)、心態和認知以及溝通技巧。而一些主流的大型網際網路公司面試(阿里巴巴、京東、美團、滴滴)更是需要你在面試時展現出自己的能力,從而獲得面試官的欣賞和肯定。
而程式設計師在應聘時更是需要經歷層層面試。俗話說,磨刀不誤砍柴工,做好面試前的準備工作可以幫助大家更好的應對面試官的問題以及面試中的突發情況。那麼我們一起來看看大型網際網路公司的面試題吧!
阿里巴巴面試
第一個:阿里面試都問什麼? :(55分鐘)
1、開發中Java用了比較多的資料結構有哪些?
2談談你對HashMap的理解,底層原理的基本實現,HashMap怎麼解決碰撞問題的?
這些資料結構中是執行緒安全的嗎?假如你回答HashMap是執行緒安全的,接著問你有沒有執行緒安全的map,接下來問了conurren包。
3、對JVM熟不熟悉?簡單說說類載入過程,裡面執行的哪些操作?問了GC和記憶體管理,平時在tomcat裡面有沒有進行過相關的配置
4、然後問了http協議,get和post的基本區別,接著tcp/ip協議,三次握手,視窗滑動機制。
5、開發中用了那些資料庫?回答mysql,儲存引擎有哪些?然後問了我悲觀鎖和樂觀鎖問題使用場景、分散式叢集實現的原理。
6、然後問了我springmvc和mybatis的工作原理,有沒有看過底層原始碼?
京東金融面試
1、Dubbo超時重試;Dubbo超時時間設定
2、如何保障請求執行順序
3、分散式事物與分散式鎖(扣款不要出現負數)
4、分散式session設定
5、執行某操作,前50次成功,第51次失敗a全部回滾b前50次提交第51次拋異常,ab場景分別如何設定Spring(傳播性)
6、Zookeeper有哪些用
7、JVM記憶體模型
8、資料庫垂直和水平拆分
9、MyBatis如何分頁;如何設定快取;MySQL分頁
10、熟悉IO麼?與NIO的區別,阻塞與非阻塞的區別
11、分散式session一致性
12、分散式介面的冪等性設計「不能重複扣款」
美團面試
1、最近做的比較熟悉的專案是哪個?畫一下專案技術架構圖
2、JVM老年代和新生代的比例?
3、YGC和FGC發生的具體場景
4、jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?
5、執行緒池的構造類的方法的5個引數的具體意義?
6、單機上一個執行緒池正在處理服務如果忽然斷電該怎麼辦?(正在處理和阻塞佇列裡的請求怎麼處理)?
7、使用無界阻塞佇列會出現什麼問題?
8、介面如何處理重複請求?
9、具體處理方案是什麼?
10、如何保證共享變數修改時的原子性?
11、設計一個對外服務的介面實現類,在1,2,3這三個主機(對應不同IP)上實現負載均衡和順序輪詢機制(考慮併發)
滴滴面試
1、自我介紹,技術特點
2、興趣是什麼,優勢是什麼
3、jvm,jre以及jdk三者之間的關係?
4、Dubbo的底層原理,Zookeeper是什麼
5、cincurrentMap的機制;TreeMap;Volatil關鍵字
6、快速排序;廣度優先搜尋(佇列實現)
7、快取的雪崩以及穿透的理解?
8、HashMap的key可以重複嗎?
9、synchronized和lock的區別?
10.開發一個大型網站你會考慮哪些問題?
本次臥底面試得到的結論
通過面試題來看,可以看出目前網際網路公司面試考點為:
1.效能調優、演算法資料機構
2.高併發下資料安全、介面冪等性、原子性等
3.分散式下協同、已經鎖的處理
4.資料庫的分庫分表、專案之間的垂直拆分
出現頻率高的技術點有:
1.HashMap
2.JVM
3.Dubbo
4.Mybatis
5.Zookeeper
6.http tcp/ip