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