做Java開發5年多了,從年前開始準備衝大廠,人算不如天算,今年受到疫情影響,面試時間一拖再拖。。。。。不扯了進入正題
先說感想吧,總結起來:面試官喜歡拋出一個大點,看你能講多廣多深(下面手打的內容全靠我回憶所寫,不足之處敬請諒解)
而且阿里還有一個毛病,每一次面試中間相隔的時間至少一個星期,所以七次面試前前後後大概花費了2個多月的時間。
可能還有部分人好奇,爲什麼定位P7+拿P8的工資,這裏我解釋一下,阿里社招的最高崗位基本都是P7,升P8是需要熟悉或者說精通阿里內部的技術的。(PS:阿里P8社招陣亡率90%)但是有一些人技術很厲害的社招進來的人基本上就是定位P7+拿着P8的工資,過兩年就升P8了。。。。。。進入面經正題:
一面: 90mins
- 講項目
- 講一個集合框架整體框架
- 分Collection和Map兩大類全部講一遍,每一個接口和對應實現類,他們類各自的特點,性質,基本參數,能講多深講多深
- arraylist和hashset區別
- 爲什麼hashmap要在8的時候樹華
- 根據泊松分佈概率(源碼註釋裏寫了)
- hashmap線程安全的方式
- hashtable和concurrenthashmap的各自特點,能講多深講多深
- 爲什麼hashtable被棄用了,cch1.7之前和1.8之後的區別
- 鎖的分類
- 樂觀鎖、悲觀鎖、自旋鎖、讀寫鎖、排它鎖、共享鎖、分段鎖等等各自特點,以及它們在java中具體的實現方式
- Spring IOC的底層實現
- XML+dom4j+工廠+單例
- 索引不適用的條件
- 索引列上有函數,不滿足最左前綴,使用了不等號,使用了範圍查詢等等
- 索引的分類
- B-Tree索引,Hash索引,全文索引,單值索引、唯一索引、複合索引、聚簇索引、非聚簇索引等等,以及它們各自的特點
二面:40mins
- 講項目
- 線程池瞭解多少
- executors創建的幾種線程池,直接new ThreadPoolExecutor,7個參數
- 線程池拒絕策略分別使用在什麼場景
- Spring AOP的底層實現
- 動態代理,newProxyInstance,cglib,ASM
- 講一下代理模式
- 動態代理,靜態代理
- 你都瞭解什麼設計模式,他們在JDK中如何體現的
- 工廠,責任鏈,觀察者,建造,代理,單例,原型等等在JDK中對應的體現。。。
三面coding:2h
- 千萬級數據量的list找一個數據(多線程),搶紅包
四面:50mins
- 講項目
- 講一下JVM堆內存管理
- 棧上分配->TLAB->新生代、老年代->可達性分析->GC算法->所有垃圾回收器及其優缺點和特點
- 那到底多大的對象會被直接扔到老年代
- G1兩個region不是連續的,而且之間還有可達的引用,我現在要回收其中一個,另一個會被怎麼處理
- 聽說過CMS的併發預處理和併發可中斷預處理嗎
- 平常怎麼學習的和職業規劃
五面coding:2h
- 百萬級int數據量的一個array求和(fork/join)
六面交叉面:20mins
- 深挖科研項目
七面hr:20min
- 聊人生,聊理想(老套路)不扯淡基本沒問題。
- 我6月8號入職,給大家分享一些大廠面試真題吧,這也是我自刷的題目,希望大家都能進心儀的大廠~
先上個彙總圖吧
北京-百度-Java中級
杭州-螞蟻金服-Java高級
杭州-螞蟻金服-資深工程師
上海-拼多多-Java高級
上海-攜程-Java高級
深圳-騰訊-Java高級
深圳-豐巢科技-Java高級