
他的情況介紹,雙非一本,19年畢業,計算機專業,只過四級,剛剛一年經驗,他把他的支付寶外派面試經驗分享出來了,還有他的一些學習資料,也都整理出來發給我了,需要的朋友可以私信【電子書】即可!
一面是軟通技術面
跟HR溝通的時候我說算了算了,阿里的線上面試還是有難度的,畢業一年以我的能力怕是外派去不了的。然后她就一直一直要我簡歷,我一想,反正不花錢,試一試嘛。
(當時我還在公司上班,我是騎驢找馬型的,也沒提前約時間,就跑到樓梯間里去)
1、分布式
問的還是挺多的。SpringCloud 的框架都點了,還有阿里最新的一套,Nacos,Sentinel做服務熔斷限流降級持久化到數據庫,分布式事務(TC二階段提交)。分布式事務的其他解決方案也沒有問。
2、JVM (問的最多)
類加載機制,沙箱安全,這些都問。然后問運行時數據區,我答漏了一個程序計數器。
他就接着提問程序計數器,真被自己蠢到了。
然后問可達性分析,什么樣的對象可以作為GcRoot、加載的時候把這些對象提前找好用的OopMap。
OOM,StackOverFlow,垃圾收集算法,垃圾收集器(G1),記憶集。
新生代幾次對象幾次到老年代?(15)
有沒有可能直接把剛new出來的對象放在老年代?(第一次遇到這個問題,我就說覺得有可能,畢竟有些垃圾回收器會有一個空間分配擔保策略。)
后面我去查了一下資料,直接把對象new 在老年代的情況還是比較多的。我說的那個是其中一種。
3、多線程(問的也超級多)
volatile,CAS,總線嗅探,CPU緩存一致性協議
ReentrantLock、ThreadLocal、Lock和Synchronized的區別,CountDownLatch,ABC三個線程怎么去保證順序執行?
(多線程我就是那種理論還行,實操渣渣的那種,畢竟業務系統,阿西吧,都是淚啊)
4、數據庫優化
剛巧就是前一天寫的博客,全問了。真就超級巧。B+樹,Hash索引,最左前綴,索引優化分析,一條龍服務,都問了一下。
5、Redis
一來就是分布式鎖,不逼逼的那種。然后別的就沒問了,可能也是覺得我回答的還行就跳過了。
6、基礎
沒想到我上面的回答的還可以,但是在基礎題上卻回答個稀爛
HashMap:我直接答錯了,他問擴容的觸發條件是什么,我說只是一個達到負載就擴容了。他告訴我是:負載和Hash沖突同時發生。這個我真不知道。
final 修飾一個變量String 怎么去改,我說改不了,他說用反射。我也不知道。
final 修飾一個對象Person,能不能去改對象的屬性 (問到這里我就猜到 final是僅僅不能改引用的地址,至於引用里面是什么,就可以隨便改了)然后他給我講了一下。
上面兩個基礎題答的稀爛,另外有幾個問了是真不知道:
死鎖怎么排查?
JVM調優什么做?
explain + sql 后面的列表都表示什么含義?(我是真的忘了,只記得文件內排序和臨時表了)
面試官一般nice,不會的會給你提示(比如我答漏了一個程序計數器),也會給你講清楚。
電話面試,整個過程接近一個小時。
二面阿里技術官面
整個過程40分鍾。
場景題偏多。
1、自我介紹,直接技術棧
自我介紹很重要,圍繞四個點去說。(自報家門,項目經驗,技術棧,求職願望)
因為你不知道這次面的是技術還是HR,所以多帶一句類似這樣的話:
我一直在對照行業內普遍的招聘要求去學習,對分布式,jvm,redis.....比較了解
也一直很想去像你們XXX這樣的互聯網公司歷練自己,希望能加入你們的項目組。
(也不多,就10幾秒鍾就說完,不耽誤其他的表達)
2、HashMap & ConcurrentHashMap
這可以說是面試必問啦。抓住機會,把知道的多說一點,哈哈哈。
3、數據庫連接池
我真就只知道一點點皮毛,連接復用,用durid(阿里的 Druid 數據庫連接)倒是用的多。但是生成上參數怎么配的不知道,連接數不夠了怎么辦不知道......
4、Spring和SpringBoot的區別
基礎題。也是抓住機會,好不容易一個知道的,趕緊多說一點。
5、輸入一個網址之后發生了什么?
對於我這個網絡渣渣只知道域名要去DNS解析,找到ip,然后才進到后台端口服務。但是這個過程肯定要經歷各種代理和負載均衡的調度。之后就是查數據庫返回。所以我答個稀爛。
6、數據庫查詢慢你怎么分析?
常規,把知道的說出來就行。慢查詢日志,找到sql,用explain分析,對照索引看看建的怎么樣。如果急用的話那就強制走一個,不急的話那就慢慢優化索引結構唄。
7、問了幾個索引題。
字符串要寫單引號,字符串查詢怎么增加查詢效率,字符串索引太大了那就截取幾個做索引,叫前綴索引。怎么判斷一個索引字段選的好不好,看不重復的和總數的比值,越大越好。
8、假如現在系統里面就是要模糊匹配怎么辦?
就是要做字符串的搜索,怎么辦?我只想到一個ElasticSearch。
然后說了說ES可能不實時,因為要借助其他工具進行同步(logstash),然后問了幾個概念。
唉,也忘記掉了,沒答好。
9、大數據了解嗎?
只看過一點Handoop,把HDFS文件系統做存儲,MapReduce做計算說了一下。
后面那些就真不知道了。hasdoop的都快忘沒了,沒必要不懂裝懂。
阿里的面試,場景題很多,考察的也是知識的廣度,面對問題的解決方案和思路。但是只要問到一些點上面,面試官就知道你是什么水平了。回答的不好也會說沒關系的下一個。面完我的感覺就是沒了。然后打算好好補充一下基礎知識。
HR面
直接就說阿里那邊的面試通過了。我也知道那肯定是有了,外包只要面過了就只希望你去就好了。
問我期望薪資,我就說16K。很爽快的就同意了。然后問我有什么想問的。
其實沒什么了啊,我覺得我這樣的情況,畢業一年,16K,差不多可能已經到頭了吧。不比現在拿6K多點好么?
當時其實不是很激動,楞了一下。她說:別的不了解一下么?
......
其實大家都懂的,外派大廠,吃住自理,五險一金交的也不是很高,年終可能就看心情給,晉升那就看自己表現了,或者就沒有晉升好吧。大多數情況下,外包去大廠那就是就是作為一個跳板吧。環境氛圍會驅使自己學更多的東西,那下一次跳槽,就比較理想了吧。
乙方......
實習的時候在銀行的時候是乙方,畢業了去煙草行業也是去做煙草的乙方......
那去嗎?
大概率是會去。看看我這1年經驗的條件,再看看18年后畢業勿擾的崗位要求,去!
面試總結
這是我自己整理的一些技術板塊在面試中常問的面試題,現在把自己的經驗分享給大家,需要的可點擊這份《Java面試BAT通關手冊》即可!
自己這幾個月面了好多家吧,整理下來最容易問的知識點:
一、Java基礎
面向對象,final,HashCode,HashMap,ConcurrentHashMap,集合框架。

二、Spring社區
IOC思想,創建過程,Bean生命周期,三級緩存搞定循環依賴,AOP倒是問的少
SpringMVC流程(經典面試題了)

三、分布式微服務
路由,網關,調用,負載,配置,熔斷限流降級
阿里最新的組件也常問,Nacos,Sentinel,Seata
(Seata是一種二階段提交解分布式事務的辦法,還有很多,常用的還有補償,盡最大努力通知)
那么分布式鎖也要准備一下了(Redis,Zookeeper)
雪花算法 分布式唯一ID 生成器

四、Redis
我覺得它就是一個萬金油,使用場景也是常問的。
緩存,分布式鎖,緩存雪崩擊穿穿透這三兄弟,以及對於的解決辦法,數據類型,持久化策略,高可用策略,主從,哨兵
再深入的話就把數據結構看了
五、數據庫
Mysql高可用,索引,B+樹,哈希索引,聚集索引,聯合索引,前綴索引,三星索引,索引失效
數據表水平垂直拆分,拆分之后怎么做查詢,慢查詢分析,索引失效的情況,回表是什么意思,隨機IO和順序IO,explain的輸出列是什么意思

六、多線程
volatile問的最多,synchronized反而不是很多
AQS和聚合了這個同步器的鎖。
公平鎖,非公平鎖,偏向鎖,分段鎖,可重入鎖......
七、JVM
推薦看兩遍《深入理解Java虛擬機》周志明的最新版,看完就基本能回答面試的提問了

八、網絡
我這個計算機網絡渣渣只能說起碼 三次握手和四次揮手要知道吧
還有就是一些場景題,多去看b站上面的面經,看看別人是怎么問這些問題的,該怎么回答。
數據結構和算法,多練。
貪多嚼不爛,慢慢積累消化。
