前言
3月隨著LeetCode-cn的每日一題開始,面試也就沒停過。
由於身處上海,可選擇的其實不多,自己定的方向是後端開發,跨專業的,就死抓Java了,複習內容後面會提。基於技術棧,選定的目標是:美團、字節、阿里、騰訊、外企。
開始挺沒自信的,不知道自己準備的全不全面,知識點背了忘,框架原理也不想看,刷題也是隔天忘。可能大部分跨專業的人和我都有類似的擔憂吧,會擔心自己基礎不夠紮實。但在面試的過程中,其實常考的就那些知識點,在基礎的理解之上去Google一下英文的解釋,比如csdn滿篇的兩次三次四次握手,又臭又長,Google一下Why TCP three handshake,啥都給你講明白的,所以擁抱Google吧。
這麼說的原因在於,只背面經沒前途,千篇一律的回答面試官也提不起興趣。怎麼解決呢?知乎+Google,比如進程和線程,一般的回答就是它倆是xxx的單位、各自有啥結構,但如果從OS和CPU的角度來看,進程和線程只不過是資源分配的不同粒度上的區分。
總的來說,要對知識點有自己的理解。
面試內容:
只寫一下算法的內容,其他東西一是記不清,二是其他面經都覆蓋了,三是最後會總的聊一下
阿里:
阿里雲提前批(一二面)
1,3 Sum
2,線程併發題,一個類中有三個方法,分別會被三個線程調用,保證他們的執行順序,比如外面調用順序BAC,要求執行順序ABC
3,求矩陣中最大連通分量的元素數
騰訊CSIG(一二三面)
1,手寫堆
2,手寫快排
3,賽馬問題
4,隨機數問題:rand7 -> rand10
微軟上海(一二三面)
1,大數乘法
2,leetcode-662
3,字符串中的最長迴文子串
美團(一二面)
1,求n以內的素數
2,數組中只出現一次的數字
字節跳動(一二三面)
1,刪除有序鏈表中的重複元素
2,最近公共祖先
3,樹的層序遍歷
4,BlockingQueue
5,打印DAG的拓撲序列
VMWare
1,反轉鏈表
2,TOP K
PayPal
1,反轉鏈表
結果:騰訊、字節、美團、VM、PayPal都拿了offer
複習準備:
1,馬老師的視頻(重中之重)
2,面外企必須準備英語,各個方面的。自我介紹,項目(difficulty、how to solve、what you learn from this),規劃(短期的,長期的)
3,Core Java:Collections, JUC, Lock, JVM
4,MySQL:鎖,事務,索引
5,redis:優勢,數據結構,持久化
6,spring:IOC、AOP
7,MQ:常見MQ產品比對,如何保證消息不丟失,處理重複消息
8,RPC:原理,dubbo和springcloud的對比
9,算法和數據結構:查詢類、排序類、LRU
10,劍指offer,leetcode TOP100、TOP Interview
筆者這裡還有一些整理好的面試資料,和複習時看的文檔資料,感興趣的朋友可以幫忙轉發文章後,關注私信回覆【學習】來免費獲取
面試資料
文檔資料
最後
面試不僅是考察知識點、算法和數據結構,還有很重要的一部分是你的表達能力。你肯定無法記住所有知識,但要給面試官一種你很穩,穩如狗的感覺,不要露出你的緊張。
會的東西放慢語速,有條理的說出來;不會的東西先打預防針 “這個我記不清了,但我可以試著講一下”,然後往自己熟悉的點上靠,舉個栗子:duboo會不會?dubbo具體原理沒有深入瞭解過,但我知道dubbo是一種RPC框架,我對於RPC的原理有了解過,它是xxxx。
手撕代碼一定要先確保對方認可你的思路,面微軟時的深刻教訓!!!
大夥加油,奧裡給!
閱讀更多 Java高級碼農 的文章