校招秋招面经整理及复习规划
記錄秋招面經與復習計劃(大佬勿噴)
- 復習計劃
- PHP方向
- Java方向
- 數據結構
- 計網操作系統
- 編碼方面
- 小結
- 面經
- oppo(現場面2技術 1hr)PHP開發
- 中興(專業面試 綜合面試)java開發
- 遠景(2技術 1hr)java開發
- 猿輔導(2技術)java開發
- 流利說(電話面)java開發
- 瘋狂游戲(電話面)java開發
- 貝殼(現場面2技術 1hr)PHP開發
- 星環科技(電話面)java開發
- 百度(不知道哪個部門)PHP開發
- 百度(百度云3技術)PHP開發
- 百度(不知道哪個部門,1面掛)PHP開發
- 阿里(新零售2技術)java開發
- ihandy(1技術)java開發
- bigo(1技術)java開發
- shopee(2技術 1hr)java開發
- 浦發(1技術)java開發
- 美團(2技術)java開發
- 總結/個人感悟
博主菜雞,分享些自己秋招面經和復習規劃,供大家一起交流探討,大佬勿噴。簡單介紹下本人情況,計科本碩211,研究生做的方向主要是代碼安全方向,自己寫小項目用PHP多些,因此秋招本打算找PHP,但經歷春招實習面試試水發現PHP需求太少,因此同時也開始復習java基礎找java方向。最終秋招簽了字節跳動的安全研發方向。下面先分享下復習規劃,隨后分享相關的秋招面經。(注:本文為作者原創,轉載請注明出處!!)
復習計劃
PHP方向
主要以常見的PHP語法以及相關的PHP面試問題為切入點進行復習,這里可以借鑒github的一些PHP相關復習資料的整理,比較全面,博主也是跟著一些項目的知識點總結進行復習的。由于后面發現這塊需求量不是很大,因此花費時間比較少,大約每天分配半小時到一個小時復習知識點,簡歷中的相關項目也只有一個學習swoole時的練手項目。關于該方向的面試感覺主要集中在應用較多,多數會給你具體場景去分析用什么技術解決,包括結合服務器做一些負載均衡等知識點,但在面試中發現如果只會PHP相關內容還是比較困難的,比如面試百度PHP方向,一面基本全是問的java基礎。二面才問了PHP相關內容。
Java方向
雖然以前本科也學過java,但因為當時沒怎么深入自學,而且代碼也敲得比較少,所以這塊缺口還比較大。博主的主要復習方式是先跟著Cyc大佬的總結資料基本過一遍面試所需要的必備知識點,隨后對重要的部分再做深入學習,比如虛擬機并發及容器部分。這里由于時間關系大概只復習了兩個月左右,所以其實這塊掌握的并不細致,在許多面試過程中也能明顯的感覺到,比如猿輔導面試時被問及線程池相關內容只能回答到最基本的概念,甚至連幾個參數和相關含義都沒有了解。后期這塊主要靠刷牛客面經進行查漏補缺,不得不說面試題目許多重復率還是挺高,建議走校招的同學還是能夠早些準備,扎實基礎才是王道。
數據結構
關于數據結構這塊個人認為還是要好好下功夫,無論對于面試還是做題都很有幫助。博主個人復習方法主要是結合王道考研書進行基本知識概念的復習,同時切記不能光看,要動手去編碼實現,尤其是鏈表和二叉樹相關內容。計算機學習的大忌就是光看不動手,博主在本科期間只注重文化課理論知識,只追求考試分數而導致編碼能力沒有很好地去鍛煉,因此對這塊深有體會。
計網操作系統
這里也是面試過程中考察較多的地方,校招主要注重基礎知識的考察,因此這塊同樣也需要下功夫去在記憶的基礎上加以理解。博主的主要復習方法是跟隨Cyc大佬的復習筆記,以該筆記為框架對于具體的知識還要再做深入學習和了解。在過完知識點后就要大量的刷面經來查漏補缺了。個人觀點是先進行知識點的整體學習后再刷面經,而不是一上來就直接刷面經
編碼方面
這里也是面試過程中的考察重點。因為筆試題目貼合實際場景,需要進行提取和抽象,所以短期內可能沒法進行很好的練習,但對于面試而言還是可以短時間做一個不錯的提高(前提是有一定編碼基礎),因為面試過程的手撕代碼其實重復率也挺高,而且難度會比筆試題低許多,因此這里也需要下一定功夫,建議每天要分配一定時間進行練習。首先,劍指offer是必不可少的,建議刷兩遍或以上,第二遍開始可以選擇考試模式,這樣有助于練習找bug能力,筆記筆試過程不會明顯提示報錯原因,可以幫助熟悉筆試。同時,leetcode也是必不可少的,可以按照自己的習慣,比如分類刷題或按順序刷,博主一般習慣按順序刷題,這里建議leetcode刷100道以上,你會發現做題會越來越有感覺的。這里要注意在開始刷題的時候可能困難會比較多,因此要注意時間的把握,如果一道題思考30min還沒有思路建議看別人的解題筆記進行學習,同樣不建議一上來就去看解題筆記。刷題過程有時沒辦法找到最優解題方法,因此可以先考慮“暴力”解題,在解題成功后再進一步優化或學習他人的巧妙解題方法。
小結
以上即是博主復習過程的一些安排,當然每個人具體情況不同,可以根據自身情況做具體安排,但要注意校招注重學生基礎的掌握,因此要在這塊下一定的功夫。
下面貼出博主的一些面經,首先簡單說下博主的offer情況:
offer:中興(get),華為(get),百度(get),oppo(get),shopee(get),浦發(接到體檢),小米(get),字節(get),貝殼(get)
未通過或其它情況:遠景(hr面掛),阿里(二面完沒反應),bigo(一面完沒反應),流利說(一面掛),瘋狂游戲(一面掛),猿輔導(二面掛),美團(二面掛),tx(一面掛),星環科技(一面完等后續現場面),ihandy(二面有事沒參加)。
通過校招深刻體會到這個過程運氣也相當重要,秋招前比較想去的公司就是tx,百度,字節和貝殼了,最后在百度字節的糾結中選擇了字節,雖然是安全研發方向(樓主本來是做后臺方向的),但也算還愿了吧。
面經
oppo(現場面2技術 1hr)PHP開發
一面
二面
中興(專業面試 綜合面試)java開發
編程題:
二重背包問題。
給定數組按數字出現的頻率由高到低排列數字。
一面
半小時聊項目 十幾分鐘聊天 數據庫視圖解釋
二面
更像是hr面,基本沒什么技術問題。
遠景(2技術 1hr)java開發
一面
自我介紹
項目介紹
JVM模型?
JVM如何調優,有哪些監控工具?
HashMap查找原理?
自己如何設計一個HashMap?
ArrayList與LinkedList區別?使用場景?
ArrayList如何優化(知道數據數量情況下)?
線程和進程區別?
是否使用過java多線程?
二面
hr面崩了,問我了不了解他們公司,上沒上過他們的官網,然后我手里拿了哪些offer
猿輔導(2技術)java開發
一面
項目介紹
int與Integer區別,給數量龐大的數字使用Integer創建是否會對重復數字創建新對象?
java垃圾回收算法有哪些,現在商用主要使用哪種回收算法?
算法:二叉樹打印所有和為某值的路徑。
算法:數字中查找第k大。
二面
自我介紹
談談對staic認識,有什么好處和缺點?
談談線程池,核心線程數和最大線程數分別指什么?
什么情況下會使用多線程?
如何保證多線程工作時變量的一致性?
鎖有哪些類型?
sychronized屬于樂觀鎖還是悲觀鎖?實現原理是什么?屬于對象層面線程還是進程層面?
Lock與sychronized區別?
什么是死鎖?
是否了解原子類?
什么是CAS?原理是什么?
算法:實現CAS
優化:如何解決ABA現象
猿輔導掛主要是java基礎掌握不牢固,同時11個算法實現的不是很好
流利說(電話面)java開發
一面
同步和異步概念
swoole特性
redis項目中作用
redis數據結構有哪些
redis訂閱發布功能
Mysql索引作用,底層實現
post與get區別
http基于什么傳輸層協議實現的?一次http連接成功后斷開重新進行第二次http連接是否需要重新tcp連接。
https實現,ca證書作用
對稱加密與非對稱加密
鏈表是否有環,若有環如何求環長度
小明去書店買4中參考書,每種書價格為3,5,7,11,他有70元錢,在保證每本書至少買一本的情況下畫完全部錢有多少種買法。
流利說感覺是答得比較好的,沒有不會的,結束面試官評價也不錯,估計hc不多。
瘋狂游戲(電話面)java開發
一面
java線程池?
Nosql使用
手寫觀察者模式
解釋觀察者模式工作原理
是否了解ES6,webpack,vue等?
項目介紹?
是否有轉前端的想法(后端名額較少,前端空缺較大)
瘋狂游戲也是感覺答得還可以的,面完后面試官也是評價不錯,但可能后端hc不多,也不同意轉前端的原因。
貝殼(現場面2技術 1hr)PHP開發
一面
二面
貝殼比較曲折,提前批和正式批兩次筆試4道題a了3道以上都沒有面試,最后還是現場又去筆試了一次才面試的,面試過程中小哥也給了一些建議,比如知識點沒有串起來形成一個系統,記憶成分居多。
星環科技(電話面)java開發
一面
項目介紹
數組與鏈表區別
快排時間復雜度,堆排時間復雜度,快排空間復雜度(遞歸實現),堆排序空間復雜度。快排原理?堆排原理?
建堆的時間復雜度?
JVM的GC機制?是否碰到過由于GC導致問題。
Java異常種類?
工廠模式,使用場景?***模式?單例模式?
是否使用過數據庫事務?ACID指什么?
隔離級別?分別含義?
是否了解過大數據相關知識?
業務介紹。
星環科技面試體驗也不錯,小哥很專業,態度也很好,后來offer基本定了二面要去現場面就拒絕了。
百度(不知道哪個部門)PHP開發
一面
http1.0,http1.1,http2.0
協程原理,用戶態還是和心態
分布式一致性如何保證,存在延遲不一致如何處理,數據延遲如何處理。
口述快排。
然后就是長達50min的場景設計,記不清了,反正被惡心到了。。。
百度(百度云3技術)PHP開發
一面
項目 自我介紹介紹
Java中的final的用法
JVM結構
java寫程序如何進行異常處理
當異常拋出到最上層需要如何處理
描述堆的結構
堆排序實現策略
比較快排和堆排序時間復雜度最好最壞情況,空間復雜度。
Linux基本命令是否熟悉
log目錄中有大量log文件,找出最近10天內未訪問的文件。
系統cpu使用壓力過高,如何排查或哪些進程造成原因。Top能檢查到哪些關鍵參數。如何按照進程使用內存或cpu占用時間進行排序。
有無遇到自己寫的程序造成內存占用過高情況。
從一臺server訪問另一臺server出現unreachabel報錯如何排查網絡那個部分出現錯誤。
TCP與UDP區別
UDP使用場景(計算機系統中使用UDP),在什么情況下優先考慮使用UDP。
協程有無了解,實現原理,處理網絡連接有什么優勢。Java開發過程是否用到。
二面
用什么命令查文件中關鍵字,大小寫是否敏感,如何查找某個范圍
前中后序遍歷二叉樹,非遞歸中序遍歷
http請求方式,get,post,head有什么區別
如何設計服務端日志,需要記錄那些字段。
然后又開始了愉快的場景設計
三面
百度(不知道哪個部門,1面掛)PHP開發
一面
編碼:十進制轉二進制
編碼:數組實現隊列,用最小時間復雜度獲得當前隊列中最大值
500w個手機號和用戶信息,如何設計數據庫存儲
10億個數,機器內存512m,如何找所有重復整數
各種排序算法在哪些場景使用,如歸并排序,快排,冒泡排序
是否了解大小端,代碼如何實現大小端
判斷兩個鏈表是否有公共節點?有哪些可能異常。
阿里(新零售2技術)java開發
一面
1.自我介紹
2.項目介紹,難點,挑戰,職責,核心技術(3個)
3.鏈表和數組區別。
4.兩個鏈表判斷是否相交。
5.線程池。
6.排序算法有哪些,一般怎么選擇。
7.一個文件有許多英文單詞,如何統計出現頻率最高前10個。
8.b 樹是什么。
9.線程進程區別。
10.線程池概念。
11.是否有發表論文。
二面
java里list,set,map,hashmap區別,使用場景
String,StringBuffer,StringBuilder區別
如何在大數組中找到從小到大第一億個
thread local是什么,如何使用
csrf原理
servlet生命周期
Spring的AOP原理
JVM的GC算法有哪些
cpu占用過高排查思路(使用哪些命令)
線程池
還有兩道編程忘了,關于阿里秋招體驗極差,要找靠譜的內推人,8月份內推系統沒開之前就已經面了兩面了,后來內推系統開了簡歷錄入到系統后一直沒有人來面試,期間被別的部門撈起面過,還以為是三面,結果后來人家約二面才知道換部門了,但后來另一個部門說新零售這塊簡歷沒釋放,沒法繼續面試了,聯系內推人釋放簡歷也不理我,就這樣不掛不面不放簡歷一直到秋招結束,所以建議大家還是要找靠譜的內推人。
ihandy(1技術)java開發
一面
自我介紹
項目介紹
項目2
談談對redis的了解
redis單線程如何保證高效?I/O多路復用有哪些方法,使用過哪種?
php有無實現I/O多路復用的方法?java下是否有?
WebSocket內容?屬于哪一層?基于什么實現的?
TCP在哪一層?OSI五層分別是哪些?各層功能是什么?都有哪些協議?
訪問百度過程中各層做了什么?
2核cpu4g內存使用redis最大QPS是多少?
進程間通信方式?共享存儲如何實現?
進程和線程有什么區別?
I/O多路復用,線程,進程間有什么關系?
select工作機制?針對進程還是線程?
算法:無序數組找出前k大方法,時間復雜度?為什么是這樣的時間復雜度?有無其它方法?計數排序空間復雜度有無辦法優化?
1t文件中每行存一個單詞,使用內存為256M的機器如何統計頻率最高的10個詞?
最近遇到什么挫折?
未來發展方向?
用3個詞形容自己優點?3個詞形容自己缺點?
有無實習意向?
對公司選擇考慮什么?
二面因為在貝殼現場面試給鴿了
bigo(1技術)java開發
一面
操作系統管理哪些內容?
內存管理方法有哪些?空閑地址鏈表概念?
段式,頁式,段頁式含義及優缺點?
頁面置換算法有哪些?LRU如何實現?
怎么理解線程和進程,它們之間的關系?
多線程如何保證線程安全?
線程安全實現的其他方法?
sychnized是否是可重入鎖?
一般在什么情況下使用鎖?
讀操作是否需要上鎖?如何實現?
樂觀鎖悲觀鎖概念?
有無一種機制讀時不上鎖,寫時上鎖?
生產者消費者模型?如何用java去實現生產者和消費者?
select和epoll的區別?epoll如何實現不輪詢方式?
線程狀態有哪些?創建一個線程后進入什么狀態?創建完線程后如何調用線程?什么情況下會進入block狀態?
系統調度獲取cpu時間片
描述一種死鎖的場景?死鎖的本質?
java數據結構了解哪些?Map使用hashmap還是hashtable多些,二者有什么區別,針對增刪改查哪種效率高?
是否知道哈希沖突如何解決?java里hashmap沖突用哪種方法解決?
concurrenthashmap與hashtable區別?
鏈表數組優劣,使用場景?
什么時候會使用堆棧?
了解哪些樹?二叉平衡樹概念?二叉搜索樹?二叉排序樹?二叉平衡樹基于什么衍生出來?二叉排序樹缺點?
數據庫什么是外鍵?
索引概念,主要作用?如何實現加速查詢?
TCP三次握手過程?傳輸過程中如何做流量控制?擴大窗口縮小窗口機制?
TCP與UDP區別?使用場景?
如何可靠化UDP?
個人愛好?訪問哪些技術網站?自己是否有寫博文?
bigo也是面完以后體驗不錯的,面完面試官也說對我印象非常好,覺得我很不錯,然后就沒然后了,一直到10月底三方簽了才有電話約二面。
shopee(2技術 1hr)java開發
一面
代碼:“1223345677881”,字符串去重?時間復雜度?
瀏覽頁面過程client和server做了什么?
Accept發生在TCP三次握手的哪個階段?connect,listen函數?
Http常見的狀態碼?
項目問答?
redis數據類型有哪些?應用?
有序集合底層實現?跳表如何實現?做了哪些優化?
圖遍歷方法?分別解釋如何遍歷。
PHP解析整體流程,如何進行性能優化?
解釋swoole。
了解或使用過哪些鎖?
死鎖含義?何時會發生死鎖?如何避免死鎖?
看什么技術方面書?
http與https,https如何實現加密
二面
項目介紹
手寫代碼圖廣度優先遍歷
手寫代碼二叉樹廣度優先遍歷(限時7min)
介紹Java常用機制了解哪些,簡單介紹。
Http常見狀態碼及含義
從文件打開到編輯代碼并執行操作系統做了哪些事
數據庫事務ACID指什么,含義?
性格優缺點
公司平臺選擇有什么要求
浦發(1技術)java開發
筆試
面試
美團(2技術)java開發
美團一面
二面掛
就很迷,完全get不到他的點,全程智力題居多
總結/個人感悟
個人在經歷秋招后有些感悟,如下:
秋招運氣成分太大了,可能你準備的還不錯,但遇上bt面試官就是沒辦法,所以還是整理好心態,盡人事吧。
最后,歡迎小伙伴們留言交流,也歡迎大佬對安全研發方向的學習給予建議!!!
總結
以上是生活随笔為你收集整理的校招秋招面经整理及复习规划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你要的能做出炫酷图表的网站来啦
- 下一篇: 短信平台验证码的特点