2年Java開發工作經驗,跳槽之後面試20餘家公司的總結

二十一世紀難民發表於2022-03-23

最近換了個公司,從二月中旬開始,面到現在,面了有快二十家公司。我是一個喜歡總結經驗的人,每經過一場面試,我在回來的路上都會仔細回想今天哪些問題可以答的更好,或者哪些問題是自己之前沒遇到過的,或者是哪個知識點今天又問了等等。三月初的時候,我就在構思要寫一篇面經,主要是想著可能對那些跟我相同處境的人有點幫助,再者就是稍微記錄下這為期一個月的面試過程。

學習過程:

我自己對此也有清晰的認識,因此從過完年之後,我就開始抓緊空閒時間學習。學習的過程如下:

1.看面試題

正常人第一步肯定都會看面試題,我也不例外,在看的過程中,我發現有些文章寫的不錯,對我幫助不小值得推薦

2.深入學習

在看面試題的過程,你會遇到一些自己沒接觸過的或者以前沒深入學習過的知識,例如最常問的HashMap內部實現原理,這就促使你得開始去看jdk的原始碼或者是學習一些新的東西。看原始碼是很重要的一步,起步很難,但是會讓你收益良多,看原始碼的過程如果碰到無法理解的地方,可以百度看下別人的理解。我學習原始碼的過程中,看過幾個人的關於原始碼的文章寫的很不錯

3.熟悉專案

找出自己工作以來開發過的最叼的功能,將整個功能的流程和涉及的東西吃透。專案是面試中必問的環節,一般是以一個功能點為基礎展開問,因此你必須對這個功能有很深的認識,不能有模糊的地方。如果有時間,能把涉及到的知識點也搞懂最好。

4.做面試題

有不少公司是有面試的,如果你沒有準備過,很容易在各種小地方犯錯,建議去一些面試題網站多做些題目,我自己是用的牛客網。

5.學習記錄

把自己每天的學習時間和學習內容記錄下來,可以讓自己更有動力的學習,學習是一個枯燥的過程,你必須讓自己時刻保持有動力。

投簡歷、約面試環節

1.在哪些網站投?

拉勾網、BOSS直聘、獵聘網。

2.是否該海投?

投簡歷分為兩個情況。

1)沒有社招面試經驗:建議採取海投的方式,只要職位要求跟自己比較匹配都可以投,累計面試經驗。這個環節可以把投簡歷的網站增加兩家:智聯和無憂。

2)自認為社招面試經驗已經足夠:投那些職位匹配、公司滿意的職位。公司評價可以去看準網、百度、知乎等查詢。

3.一天約幾家面試合適?

最理想的情況為2家面試,上午一般在10點左右,下午一般在2點左右。建議把理想的公司放下午,因為下午的時間比較充足,可以讓公司更充分的瞭解你。我開始面的時候,每次都是上午面的不好,下午面的不錯。

4.投簡歷經常沒下文?

我當初也沒想到簡歷篩選這關有這麼難,可能是我的簡歷確實亮點不多,再者HR很多都不是行內人,因此他們看得最直接的就是你上家的公司和你畢業的學校,如果你不是從牛逼的公司/學校出來,可能會碰到和我一樣的情況,應對的辦法就是多投。

5.是否該裸辭?

我一開始是邊上班邊投,然後利用調休時間,或者請假去面試。後來,面試機會越來越多,請假太頻繁了,自己都不好意思了,並且自己也已經有足夠的信心,這個時候我選擇了裸辭。裸辭還有一個原因是,在面試過程中你會發現,有的公司要人要的緊,如果你的辭職流程過長可能會導致你錯過這個公司。

6.注意事項

1)面試前一天把路線和時間算好,最好別遲到。

2)背個書包,帶好簡歷、充電寶、紙巾、雨傘。

面試環節

1.筆試常見的問題?

面試常見的問題上面給的面試題連結基本都有。我只提幾點:1)寫SQL:寫SQL很常考察group by、內連線和外連線。2)手寫程式碼:手寫程式碼一般考單例、排序、執行緒、消費者生產者。我建議排序演算法除了氣泡排序,最好還能手寫一種其他的排序程式碼。試想:如果一般面試者都寫的氣泡排序,而你寫的是快速排序/堆排序,肯定能給面試官留下不錯的印象。

2.面試流程?

1)讓你自我介紹

2)問Java基礎知識

3)問專案

4)情景問題,例如:你的一個功能上了生產環境後,伺服器壓力驟增,該怎麼排查。

5)你有什麼想問面試官的

3.面試常問的知識點?

1)集合相關問題(必問):

  • HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底層實現。
  • HashMap和Hashtable的區別。
  • ArrayList、LinkedList、Vector的區別。
  • HashMap和ConcurrentHashMap的區別。
  • HashMap和LinkedHashMap的區別。
  • HashMap是執行緒安全的嗎。
  • ConcurrentHashMap是怎麼實現執行緒安全的。

2)執行緒相關問題(必問):

  • 建立執行緒的3種方式。
  • 什麼是執行緒安全。
  • Runnable介面和Callable介面的區別。
  • wait方法和sleep方法的區別。
  • synchronized、Lock、ReentrantLock、ReadWriteLock。
  • 介紹下CAS(無鎖技術)。
  • 什麼是ThreadLocal。
  • 建立執行緒池的4種方式。
  • ThreadPoolExecutor的內部工作原理。
  • 分散式環境下,怎麼保證執行緒安全。

3)JVM相關問題:

  • 介紹下垃圾收集機制(在什麼時候,對什麼,做了什麼)。
  • 垃圾收集有哪些演算法,各自的特點。
  • 類載入的過程。 雙親委派模型。
  • 有哪些類載入器。
  • 能不能自己寫一個類叫java.lang.String。

4)設計模式相關問題(必問):

  • 先問你熟悉哪些設計模式,然後再具體問你某個設計模式具體實現和相關擴充套件問題。

5)資料庫相關問題,針對Mysql(必問):

  • 給題目讓你手寫SQL。
  • 有沒有SQL優化經驗。
  • Mysql索引的資料結構。
  • SQL怎麼進行優化。
  • SQL關鍵字的執行順序。
  • 有哪幾種索引。
  • 什麼時候該(不該)建索引。
  • Explain包含哪些列。
  • Explain的Type列有哪幾種值。

6)框架相關問題:

  • Hibernate和Mybatis的區別。
  • Spring MVC和Struts2的區別。
  • Spring用了哪些設計模式。
  • Spring中AOP主要用來做什麼。
  • Spring注入bean的方式。
  • 什麼是IOC,什麼是依賴注入。
  • Spring是單例還是多例,怎麼修改。
  • Spring事務隔離級別和傳播性。
  • 介紹下Mybatis/Hibernate的快取機制。
  • Mybatis的mapper檔案中#和$的區別。
  • Mybatis的mapper檔案中resultType和resultMap的區別。
  • Mybatis中DAO層介面沒有寫實現類,Mapper中的方法和DAO介面方法是怎麼繫結到一起的,其內部是怎麼實現的。

7)其他遇到問題:

  • 介紹下棧和佇列。
  • IO和NIO的區別。
  • 介面和抽象類的區別。
  • int和Integer的自動拆箱/裝箱相關問題。 常量池相關問題。
  • ==和equals的區別。
  • 過載和重寫的區別。
  • String和StringBuilder、StringBuffer的區別。
  • 靜態變數、例項變數、區域性變數執行緒安全嗎,為什麼。 try、catch、finally都有return語句時執行哪個。
  • 介紹下B樹、二叉樹。
  • ajax的4個字母分別是什麼意思。
  • xml全稱是什麼。
  • 分散式鎖的實現。
  • 分散式session儲存解決方案。
  • 常用的linux命令。

 ​​​​

最近跳槽面試的人特別多,也是我寫這篇文章的初衷,我也整理了一些技術資料和麵試題集,供大家提升進階,不管你是有跳槽打算還是單純精進自己,都可以免費領取一份。

從面試簡歷模板到大廠面經彙總,從大廠內部技術資料到網際網路高薪必讀書單,以及Java面試核心知識點(283頁)和Java面試題合集2022年最新版(485頁)等等,這些面試資料整理給大家,希望面試踩過的坑不要再踩,遭遇的技術瓶頸一次性消滅。

文末附免費下載方式

一、JVM篇(2022)

(含:JVM類載入機制,JVM記憶體模型,垃圾收集機制,類位元組碼實現機制,JVM調優案例,GC日誌詳解等)

二、Java併發程式設計(2022)

(含:java記憶體模型,併發集合,執行緒池,阻塞佇列,CAS與原子操作,無鎖併發框架Disruptor等)

三、Spring篇(2022)

(含:spring IOC,spring AOP原理,spring 5,springMVC,事務管理,迴圈依賴,spring設計模式等)

四、Mysql篇(2022)

(含:SQL執行原理,索引底層機制,SQL執行計劃分析,Mysql鎖機制,Mysql事務隔離,SQL優化實踐等)

五、SpringCloud篇(2022)

(含:服務發現與註冊Eureka與Nacos,服務限流熔斷降級Hystrix與Sentinel,分散式事務Seata,閘道器Gateway等)

六、Dubbo篇(2022)

(含:Dubbo基礎,架構設計,叢集,配置,通訊協議,SPI等)

七、Redis篇(2022)

(含:Redis核心資料結構,Redis持久化機制與安全機制,哨兵與叢集架構,Redis快取穿透,快取失效,快取雪崩,Redis快取設計與效能優化等)

八、分散式篇(2022)

(含:分散式架構原理,叢集架構原理,分散式鎖,分散式事務,分散式協議,分散式配置,海量資料分庫分表,分散式排程,等)

九、設計模式篇(2022)

(含:單例模式,工廠模式,抽象工廠模式,建造者模式,原型模式,介面卡模式,裝飾器模式,代理模式等23種設計模式)

十、資料結構與演算法篇(2022)

(含:紅黑樹,B+樹,貪心演算法,雜湊分治法,七大查詢演算法,動態規劃,一致性演算法等)

十一、MQ篇(2022)

(含:訊息丟失,訊息重複消費,訊息亂序,訊息積壓,延時佇列,訊息回溯消費,訊息刷盤機制,MQ中介軟體叢集架構原理等)

十二、Netty篇(2022)

(含:BIO、NIO及AIO執行緒模型,Netty執行緒模型,序列化協議protobuf,粘包拆包問題,Netty心跳機制,直接記憶體與Netty零拷貝,WebSocket協議等)

十三、Zookeeper篇(2022)

(含:ZooKeeper選舉機制,ZooKeeper資料模型,ZooKeeper應用場景等)

十四、ElasticSearch篇(2022)

(含:ElasticSearch資料模型、ElasticSearch分散式架構、ElasticSearch資料讀寫原理和段合併等)

十五、網路與作業系統篇(2022)

(含:網路協議,TCP/IP系統結構,TCP/IP協議族,常見面試題,等)

由於篇幅有限,這裡只展示部分內容,所有的資料大家點選下方名片即可免費領取。

相關文章