【無內鬼,無廣告,無推銷,純干貨,放心入】
從畢業到現在,我面試過很多家公司,也面試過別人,面試者和面試官的心態我都經歷過;
從最初啥都不懂,到現在能在大廠幫公司面試別人,多多少少還是有些經驗和識訓的,我是一個樂于分享的人,這一路走來的心得體會都在下面了,純手敲,希望能幫各位少走彎路~
下面全是字,怕大家看困了,先來個offer提提神叭~

這是我畢業后第一份作業,當時收到這offer還是挺開心的,期間對比了幾家,最后還是去了京東~
好好準備吧,大廠并非遙不可及
一、準備作業:
作為Java程式員,你必須要掌握的技術堆疊:java基礎+spring生態+資料庫+專案+中間件+日常運維+前端基礎
后兩個只作為加分項,畢竟稍大點的廠都有獨立的運維、前端,但不排除有些大廠喜歡一條龍開發,這時候你要是會前端、再會點基礎運維,這offer不就來了
Java基礎:沒啥好說的,基礎不好啥都白搭
我相信這篇 Java核心知識點整理 但凡理解80%,都沒人說你基礎不好,當然你得真正理解,不要硬背,很多朋友給我反饋過,通過看我的博客跳進了京東阿里等大廠,別人可以你也可以;
其中資料集合很重要,hashMap、arrayList等的底層實作你要了解,和他們對應的執行緒安全類你要知道,hashmap的擾動演算法是很值得學習的(就算不是為了面試也有必要學習),傳送門;
除此之外,需要了解二叉樹、堆疊和佇列各自的特點,家里有條件的最好自己實作一下;
稍微進階一點,自定義執行緒池的那幾個引數一定要搞清楚,執行緒池初始化后,從第一個任務進來,到后面觸發拒絕策略整個程序都要搞清楚,關于執行緒池可以看看這個 一個demo讓你徹底理解執行緒池作業流程;
然后并發編程也要懂點吧,至少要知道為什么會產生執行緒安全問題,一般怎么避免;
說到并發編程,多個執行緒間如何調度要知道吧,關于這點,這篇博客請你花時間好好看看 多執行緒進階
spring:熟悉一些常用注解,都起什么作用?怎么使用?
spring兩大門神ioc和aop是必須理解的,這是spring容器實作物件管理的基礎;
大概率會問自動裝配原理,這個問題很能看出你對springboot的理解程度,建議在啟動類打個斷點,跟蹤一下springboot的啟動流程;
另外,家里有條件的話可以自己寫個starter,然后在另一個專案中參考,這個程序中你會學到很多東西,相信我;
之前寫過一篇講aop的,可以看看,基于springboot實作一個簡單的aop
資料庫:熟悉一些市面上常見的資料庫
大表優化,事務特性,事務失效場景,索引失效場景,最左匹配原則,慢查詢優化,怎么看sql執行計劃,索引相關(索引結構、幾大索引的區別,什么是回表查詢,如何避免);
資料庫中mysql必須要熟悉,畢竟普及度最廣,從一個sql提交到回傳結果,它的執行流程要了解,其中sql優化器是重點
關于性能優化,之前寫過一篇,雖然場景單一,也可以看看
mysql執行計劃explain屬性決議
mysql性能優化:單表1400w查詢最后十條資料
瘋狂試探mysql單表insert極限:已實作每秒插入8.5w條資料
專案:一定要熟悉自己的專案,專案背景、功能模塊、涉及技術堆疊,以及搞清楚自己負責了哪些模塊
準備1到2個專案亮點(所謂亮點,并不一定是高并發、多執行緒、分布式相關這種,只要不是簡單的crud,都可以是亮點,千萬別說沒有,如果實在太簡單你就夸大點,你記住,專案是你的,面試官不可能比你更懂你的專案,一頓忽悠就完事兒,其實面試就是你和面試官互相吹牛逼的程序);
你做了什么?解決了什么問題?程序中遇到什么困難?怎么解決的?最終達到了什么效果?面試要是問到專案你就一口氣給他說完,學會搶答,別等面試官問一個你答一個;
中間件:主要是快取和訊息佇列,快取代表redis,訊息佇列代表rabbitMQ、kafka
其中redis的五大資料結構你要搞清楚,每種結構一般用于什么場景,有條件的可以在本地測驗下每種結構的set/get,看下你存的資料在redis中長什么樣,如果你懶,我已經幫你們測驗過了,傳送門,但最好還是自己操作下;
然后就是快取資料庫的一致性問題,還有快取雪崩、穿透如何避免,建議了解下布隆過濾器,一般提到redis都會扯扯它;
訊息佇列方面你要搞清楚為什么使用訊息佇列,它解決了什么問題,什么場景下會使用到訊息佇列,進階點的會問你如何保證訊息的可靠性,也就是如何保證訊息不丟失,不重復消費;
日常運維:不需要多深入,但要保證夠用
別的不多,怎么查看日志你要會吧,怎么在日志中過濾想看的資訊要會吧;
服務器安全知識要稍微懂點吧,比如防火墻、用戶權限啥的;
然后稍微進階一點,cpu拉滿了要知道怎么排查吧,oom了要知道從哪兒找原因吧;
再進階一點,老大突然讓你搭個kafka集群,你不可能回一句我不會吧,多學點總沒壞處,技多不壓身
推薦幾篇運維相關的,簡單看看,里面很多命令都是常用的
linux搭建kafka集群,詳細到復制命令就能成功
linux cpu飆高原因排查
前端能力:這點見仁見智,看你面的部門有沒有前端業務需求
說是加分項吧,有時候又能成為公司決定要不要你的關鍵點,說是必須掌握的吧,你又是個臭搞Java的;
現在很多部門都不喜歡招前端,因為前端很難招,如果你自己能獨立完成前端開發作業,那真是極好的,目前兩大框架vue和react,至少要知道其中一個怎么用吧;
我知道css除錯樣式會要了老命,但主流的ui框架要會用吧;
【簡歷】:不要小看簡歷,簡歷和技術一樣重要
不要只整個一頁,即使你是應屆生也要湊個兩頁,但也不要太多,正常控制在3-4頁的樣子差不多;
內容:你的個人資訊,你會什么,你做過什么專案,專案有什么亮點,你的優勢在哪里;
一定簡明扼要,精簡干練,第一時間讓hr和面試官看到你的優勢;
最后
程式員的簡歷不需要花里胡哨
不需要花里胡哨
花里胡哨
但是、內容寫好后一定要排版,該對齊的對齊,該加粗的加粗
二、簡歷投遞
推薦boss直聘,把自己的在線簡歷好好整理下,和自己的簡歷保持同步,hr看簡歷會先看在線簡歷
boss直聘有個打招呼語,建議自己編輯一段話,系統默認的人家hr早看膩了,只有你的訊息和別人不一樣,hr小姐姐才會認為你是認真看過他們的崗位描述
有件事你需要知道,一些企業不會在boss直聘這種招聘平臺發布招聘,需要去他們官網自己找,比如很多銀行、某些國企
三、約面試
建議一開始不要投自己心儀的公司,約個備胎公司找找感覺,總結下面試情況,一定要總結;
如果你能碾壓這些小白鼠公司的面試官了,就試著投想去的公司,但要注意,越想進去的公司,面試越緊張,親身體會,面試之前注意調整心態,最好是有了其他offer再投喜歡的公司,這樣你更有底氣
四、面試ing
- 首先你要搞清楚,面試本來就不是公平的,你在明,面試官在暗,面試官自己也知道這點,所以問題答不上來是很正常很正常的,不要覺得一個問題沒答上你就涼了,面試官肯定是看你的整體水平;
- java基礎一定要過硬,一定要跟面試官展示你的學習能力,菜沒事,但我肯學;
- 面試程序中語速要慢,把自己想說的表達清楚,緊張是肯定的,所以讓先約備胎練練手,其實就是練心態,找到適合自己調整心態的方法,我就喜歡在面試之前可以找個沒人的地方自言自語瞎逼逼幾句,給自己打打氣壯壯膽;
- 自我介紹要說重點,你是哪兒人、多大了、畢業多久了(如果是科班,一定要大聲說出來!!!)、做過哪些專案;
另外,不要抖腳、不要遲到
重點補充:
- 如果遇到不會的,不要瞎編,不會就說不會,就算你糊弄過去了,進公司要是真讓你做你咋整,坑了公司也坑了自己;
- 面試官是想通過面試了解你,所以不要問什么答什么,要學會展現自己,有些沒問到的你也可以主動說,比如你搞過線上jvm調優、設計過資料庫表、排查過線上問題等等等等,這些亮點你得展示出來,不然面試官怎么知道,
祝各位offer拿到手抽筋
ok我話說完
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/415144.html
標籤:其他
上一篇:別搞了 真卷不動了
