恭喜發現寶藏!搜索公眾號【TechGuide】回復公司名,解鎖更多新鮮好文和互聯網大廠的筆經面經,目前已更新至美團、字節…
作者@TechGuide【全網同名】
聊聊春招
春招來了,有些24屆校招生可能還在做最后的努力,有些25屆的小伙伴可能想要找到一個大廠實習給簡歷鍍金。我知道,面對即將來的筆試面試,許多同學可能感到壓力山大,焦慮不安。但是請記住,焦慮是一種正常的情緒,更是一種可以被轉化為動力的能量。那么,如何化解焦慮呢?那就是,行動起來!
不想聽聲哥嘮叨的可以直接跳到面試題目的部分~
-
首先,讓我們正視焦慮,而不是回避。對于校招的不確定性,我們可以通過更積極的準備來緩解焦慮。筆試可以把歷年考過的編程題認真刷一刷,根據TechGuide四年多做筆試題的經驗來看,很多大廠的真題庫是重復考察的,比如華為、美團這些…,所以只要力扣基本過關,加上往年真題的積極練習,通過筆試和面試的手撕算法問題不大,甚至能直接碰到筆試原題。切記,不是刷越多題越好,而是要注重理解算法思想和解題方法。逐步提升自己的解題速度,這將在筆試和面試中幫助你游刃有余。
-
其次,交流和合作也是減輕焦慮的有效途徑。在這個過程中,和同學們多交流、相互學習,共同進步。可以參加牛客小圈子、大廠校招群等等,與他人分享學習心得、討論技術問題,這樣能夠拓寬自己的視野,收獲更多的知識。記住,團隊合作是我們未來職場中必不可少的能力,而從現在開始培養這個能力將對你未來的職業生涯大有裨益。
-
此外,項目實踐也是提高競爭力的關鍵。多參加一些實驗室課題/實習,哪怕是自己做一些github開源的項目,將理論知識應用到實際中。這不僅能夠提升你的編程能力,更能在面試中讓你更有底氣地回答問題。這是一種能夠讓你對計算機專業有更深刻理解的方式,同時也會讓你在面試中更具自信。
-
最重要的是,別忘了保持良好的心態。焦慮是人生旅途中的一部分,但它不應該成為我們前行的絆腳石。記住,每一次筆試面試的挫折和失敗都是成長的過程,通過好好滴復盤,它們會讓我們更加堅韌,更加勇敢。在面對校招的壓力時,保持積極的心態,相信自己,你一定能夠迎接所有的挑戰,拿到滿意的offer!
下面看下阿里云的三輪面經,好好地復盤模擬下吧~
基本情況
投遞崗位:后端開發
投遞部門:阿里云
招聘類型:暑期實習
Base地點:杭州
問題記錄
一面(60 min)
電話面。一開始知道是電話面試,本來以為不需要寫算法題的,誰知道最后感覺快結束的時候發了個鏈接過來讓打開寫Orz,所以一定要做足準備,不要心存僥幸哎。
- 自我介紹
- 項目簡單介紹。大概說下做了哪些項目,項目的需求是什么,大概用到了哪些技術棧;
- Java相關:String為什么是不可變的?Java相關:String、StringBuffer和StringBuilder的區別?
- Java相關:在循環內使用“+”進行字符串拼接的話會有什么問題?
- JVM相關:堆空間的結構?分配策略有哪些?
- JVM相關:Minor GC和Full GC的區別?
- Linux相關:文件的概念?(可能是想讓我指出Linux中所有內容都是以文件的形式保存和管理)
- Linux相關:文件有哪些類型?各自的作用是什么?
- Linux相關:inode的作用?inode包含哪些內容?給出一個文件名,Linux是如何根據該文件名打開文件的?(文件名->inode->block)文的訪問時間是如何記錄的?
- Linux相關:零拷貝是什么?用來解決什么問題?有哪些應用場景?實現方式有哪些?
- Linux相關:壓縮和解壓使用的命令?相關參數的作用?
- 網絡相關:TCP 和 UDP 可以使用同一個端口嗎?
- 網絡相關:三次握手與四次揮手流程?TIME_WAIT出現在什么時候?要等待多久?(2MSL)為什么要等待這么久?
- 算法題:Leetcode15 三數之和
二面(75 min)
- 自我介紹;
- 項目介紹:參與了哪些項目,自己挑一個項目詳細展開,介紹項目的創新點和難點,針對其中存在的問題有沒有一些思考;
- 實習經歷介紹:介紹下完成了哪些需求,業務流程,完成需求過程中遇到了哪些問題,如何解決的;
- Mysql相關:MyISAM和InnoDB的區別?(行級鎖、事務、外鍵、崩潰后的安全恢復、MVCC、性能等)
- Mysql相關:索引的底層數據結構?為什么選擇這樣的結構?(B+樹)
- Mysql相關:自己選擇維度劃分介紹有哪些索引類型?(按照底層存儲方式角度劃分:聚簇索引和非聚簇索引)
- Mysql相關:最左前綴匹配原則是什么?自己舉例進行說明;
- Mysql相關:索引下推是什么?(在遍歷過程中,對聯合索引中包含的字段先做判斷,直接過濾掉不滿足條件的記錄,減少回表次數)
- Mysql相關:事務隔離級別?InnoDB引擎的默認隔離級別?InnoDB引擎如何解決幻讀?(讀未提交、讀已提交、可重復讀、串行化)
- Mysql相關:你在項目中使用了哪些方式來對數據庫查詢進行優化?
- Spring相關:介紹下IoC和AOP?在項目中哪些地方有使用?(Mybatis)
- Spring相關:介紹下項目中和數據庫有關的操作?在Spring中連接數據庫進行數據插入操作時有哪些需要注意的地方?
- Spring中事務傳播行為有哪些?你在項目中基于什么考慮使用的?(TransactionDefinition.PROPAGATION_REQUIRED、TransactionDefinition.PROPAGATION_REQUIRES_NEW、TransactionDefinition.PROPAGATION_NESTED);
- Spring相關:bean的生命周期?有哪些注入方式?(構造器、setter和屬性注入)
- Spring相關:線程池有哪些核心參數?各自的作用?項目中如何使用的?(核心三參數:corePoolSize、maximumPoolSize和workQueue)
- 并發相關:進程、線程和協程的區別和作用?
- 并發相關:volatile關鍵字的作用?在保證線程安全的情況下實現單例對象的獲取?(雙重校驗鎖)
- 并發相關:synchronized關鍵字的作用?底層實現原理?和ReentrantLock的區別?鎖升級及實現原理?(偏向鎖->輕量級鎖->重量級鎖)
- Redis相關:有哪些持久化方式?AOF和RDB的底層實現原理?在項目中用的是哪種?基于什么考慮使用的?
- Redis相關:引入哨兵集之后,主從故障的轉移過程?
- Redis相關:Redis是單線程嗎?采用單線程為什么速度快?
- Redis相關:Redis阻塞的原因有哪些?出現阻塞后的排查以及解決方式?
- 算法題:Leetcode53 最大子數組和;
- 算法題:Leetcode146 LRU緩存。
二面開始針對項目和實習經歷的追問開始變得多了起來,而且會在聽你介紹的時候針對其中的一些點展開追問,這個過程中會涉及到八股文的提問。所以,在準備項目的過程中,一定要好好想想項目用到了哪些技術,相關的知識點最好都多看看,這些在面試中都是極有可能會問到的。二面開始,面試官會更加看重你在做項目過程中的一些思考,比如遇到問題的解決方式和一些反思總結。因此,除了八股文外,還應該多思考下自己項目的亮點,最好有一些別人沒有的創新點,這樣會很有優勢。在介紹項目的時候也可以簡單說說你通過項目學到了什么,有哪些總結思考,以此來展示自己的學習能力。
PS:本來是給的一道算法題,估計看我寫的很快,問我是不是做過,回答是之后又給了一道Orz。也許做題速度也需要稍微控制控制hhhhh。
三面(50 min)
- 自我介紹;
- 項目相關:面試官挑了其中一個項目讓介紹,主要是問了項目的技術棧、實現效果和創新點;
- 實習經歷相關:概述一下完成了哪些具體需求,以及這些需求所涉及的業務流程。在實現這些需求的過程中,遇到了哪些挑戰和困難?又是如何有效地解決這些問題的?具體的解決方案和應對策略。
- 場景題:不考慮系統限制,如何快速在大量字符串中統計出現次數前10的字符串?如果考慮內存限制,應該采取什么措施在海量數據中進行統計?
- 場景題:設計實現一個高可用、高并發的系統,講講有哪些需要注意的地方?對于突發的大流量有哪些處理方法?熱點數據有哪些處理方法?
- Redis:剛剛場景題中用到了redis,為什么redis是單線程但速度依舊很快?
- 操作系統:介紹下IO多路復用?select、poll和epoll各自的區別?
- 操作系統:磁盤快照有了解嗎?介紹下COW和ROW?
- 操作系統:進程、線程和協程各自的作用和區別?進程和線程的組成?
- 操作系統:CPU數量為1的進程執行死循環會發生什么?如何解決?
- 計算機網絡:有哪些網絡攻擊方式?在項目中針對可能的網絡攻擊采取了哪些相應的防范措施?
- 計算機網絡:cookie、session和token的區別?各自的使用場景?
- 數據庫:項目中使用了NoSQL和MySQL,說說NoSQL和關系數據庫的區別?
- 其他:最近在看什么書?有哪些收獲?
- 其他:大學以來最有成就感的一件事?
- 其他:有多家公司的offer根據什么標準進行選擇權衡?
三面沒有算法題,相比一面二面主要增加了場景題的詢問。在整個面試過程中,感覺面試官比較看重個人的思考,比如場景題中你說了一種設計思路,面試官會問你覺得目前的設計還有沒有可以提升的地方,這種時候即使回答的不是標準答案,面試官也很高興地會和你進行探討。此外,一些其他問題也會在三面和后續的hr面多起來,這些也可以稍微準備準備。