2年Java開發工作經驗,跳槽之後面試20餘家公司的總結
最近換了個公司,從二月中旬開始,面到現在,面了有快二十家公司。我是一個喜歡總結經驗的人,每經過一場面試,我在回來的路上都會仔細回想今天哪些問題可以答的更好,或者哪些問題是自己之前沒遇到過的,或者是哪個知識點今天又問了等等。三月初的時候,我就在構思要寫一篇面經,主要是想著可能對那些跟我相同處境的人有點幫助,再者就是稍微記錄下這為期一個月的面試過程。
學習過程:
我自己對此也有清晰的認識,因此從過完年之後,我就開始抓緊空閒時間學習。學習的過程如下:
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協議族,常見面試題,等)
由於篇幅有限,這裡只展示部分內容,所有的資料大家點選下方名片即可免費領取。
相關文章
- 跳槽!3年Java面試經驗總結Java面試
- 2年Java開發工作經驗面試總結Java面試
- Java面經 面試經驗 網際網路公司面試經驗 後端面試經驗Java面試後端
- 2017各大公司Java後端開發面試題總結Java後端面試題
- 10年跳槽經驗總結(轉)
- 後臺開發面試經驗面試
- Java反射機制開發經驗總結Java反射
- 工作經驗總結
- 騰訊後臺開發面試經驗面試
- iOS開發經驗總結iOS
- PHP開發經驗總結PHP
- 跳槽季:分享從事C#開發人員面試經驗C#面試
- 又跳槽!3年java經驗offer收割機的面試心得Java面試
- Java經驗總結Java
- 騰訊後臺開發面試總結面試
- iOS開發經驗總結2iOS
- Android開發經驗總結Android
- iOS開發經驗總結3iOS
- 三年啦,跳槽成功的Android開發面經總結!Android
- 大資料開發工程師的兩年工作經驗總結大資料工程師
- 開發的經驗總結 Java的生旦淨末醜!(轉)Java
- 這兩天的面試經驗總結面試
- 我的Android面試經驗總結Android面試
- python後端開發面試總結Python後端面試
- 面試官十年面試經驗總結面試
- 開發中的一些經驗總結
- 關於ios多年面試的經驗總結iOS面試
- java 面試總結(都是親身面試的經歷)Java面試
- 工作經驗日常總結===20241105
- 總結Django一些開發經驗Django
- 微信小程式開發BUG經驗總結微信小程式
- ORACLE資料庫開發經驗總結Oracle資料庫
- 一年經驗Java開發0713面試Java面試
- 面試流程——谷歌資深面試官經驗總結面試谷歌
- Android 日常開發總結的技術經驗Android
- 我的 Android 開發實戰經驗總結Android
- 我的專案開發經驗積累總結
- Android開發的16條小經驗總結Android