面試中的這些點,你get了嗎?

一、前言
因為疫情的原因,小農從七月份開始找工作,到現在已經工作了一個多月了,剛開始找工作的時候,小農也擔心出去面試技能不夠,要懂的東西很多,自己也準備可能會面試一段時間,從找工作到入職花了十幾天,總共拿到了5份office,然後選擇了一家去入職了,因為項目需要上線了,所以小農最近一直在加班,平時會比較忙一點,剛好周末想著把這段時間的經歷寫出來,希望對找工作或者剛入職的同學,能有一點點的幫助吧

二、面試前的準備
磨刀不費砍材功,對於想要找工作的小夥伴們,面試前的準備肯定是少不了的,至於多久開始準備,如果是工作的小夥伴們,可以提前一個半月開始準備,因為是在上班不一定會有那麼多時間來複習和了解知識點,對於辭職的小夥伴,花一個15-20天來準備面試,工作和面試其實還是很有差別的,面試造火箭,工作擰螺絲,面試前的準備是很有必要的,那麼針對於面試掌握的技術點,通常需要了解以下這些知識點:
- 多執行緒高並發
- JVM和JVM性能調優
- 設計模式
- Redis
- Mysql調優
- Spring Cloud
- Spring IOC/APO /源碼
- Java集合
- 做過的項目要熟悉
以上技術點,每個大概有個基礎的概念,能說出個2345就差不多,可以出去開始面試了,不一定非要確定掌握的特別清楚,上面也說過,面試不是準備到了100%才去面試,當你準備到75%的時候就可以出去,開始找找工作了,剩下的25%,需要你在面試中去進步和改變,隨機應變也是一個很重要的因素,根據面試官問你的問題,不會的可以回去查閱知識點,然後學習掌握,下一次問到你這個問題,如果還是回答不出來,那這個就是你的問題了,這個分享一個小技巧,關於在面試中和面試官的交流中,我們可以用手機錄音錄下來,回去後可以聽一聽,自己哪裡答的不好,或者什麼地方沒有回答上來,可以更好的做針對性的學習,畢竟好記性不如爛筆頭。
三、面試中
3.1簡歷
針對於簡歷,我們要敢寫,不是你不會的也要寫上,很有朋友就是,自己會一點,但是只是自己搭建過或者了解過,但是不敢寫在簡歷上面,這個沒有關係,寫在簡歷上,至於這一個技能不會的地方,如果在面試中問到了,在去了解和學習,慢慢的你也就會了,在面試中,我們都是一邊面試 一邊學習,所以簡歷應該是持續建設的,讓你會了一個知識點的時候,就應該加在簡歷上去,這個時候你投遞了也沒有關係,如果是一個你心意的公司,那麼你應該看人下菜碟,可以適當的調整一下簡歷去投遞你喜歡的公司,所以簡歷要敢寫,但是也不能太囂張,那麼問題來了,什麼是囂張的簡歷呢,來,讓你們看看囂張的簡歷:
本人學識淵博、經驗豐富,程式碼風騷、效率恐怖,C/C++、java、php無不精通,熟練掌握各種框架,深山苦練20餘年,一天只睡4個小時,千里之外定位問題,瞬息之間修復上線。身體強壯、健步如飛,可連續編程100小時不休息,討論技術方案5小時不喝水,上至帶項目、出方案,下至盜帳號、威脅PM,啥都能幹。泡麵礦泉水已準備好,學校不支援編程已輟學,家人不支援編程已斷絕關係,老婆不支援編程已離婚,小孩不支援編程已送孤兒院,備用電源萬兆光纖永不斷電斷網,門口已埋雷無人打擾。

不好意思放錯了,這個才是:

這個是高手,關於簡歷投遞的時間,我們是在上午的九點左右,那個時候投遞的簡歷,在hr郵箱裡面比較靠前,第一時間能看到,之前小農也去面試過別人,每天打開hr郵箱,全是一排排的簡歷,投遞的簡歷,應該言簡意賅,例如:(5年經驗小農應聘公司XX崗位)
關於簡歷學歷的問題,一般來說公司要求都會是大專以上的學歷,但是學歷越高工作相應的也就比較好找,所以如果是大專的同學,可以自考一個本科,還是會有幫助的,當然技能才是你的硬實力。
個人經歷: 可以寫一些獲獎、培訓(PMP 開發 敏捷)、證書什麼的
加分項: 個人部落格和Git源碼
3.2 面試題
其實大部分公司對於技術要求都沒有那麼高,對於必考的多執行緒和JVM,工作中基本是很少用到的,80%的公司,對於技術是沒有很高的要求的,但是一般來說,很多人都會被問 JVM原理、多執行緒、數據結構和演算法、高並發、設計模式等內容,這是在評估普通 Java 面試者的知識結構,關於面試題,小農也整理了一些,大家可以自行參考學習,有補充的地方,歡迎大家學習交流,
1、Redis實現分散式快取有哪些坑?如何避免快取穿透的問題?快取數據一致性如何解決?
2、MySQL Innodb 索引結構是 B+樹,具體 Innodb 的索引有什麼特性?如果遇到慢查詢、遇到高並發後,你從哪幾個方向去優化 MySQL?
3、交易場景下,你的狀態流轉是怎麼設計的?很多人全都是業務程式碼,你怎樣才能做到更高層面的抽象?
4、微服務架構下,對於服務降級和邊界條件,你是怎麼看的,一般都如何去設計?能結合實際場景,說說分散式事務、分散式鎖么?
5、AOP IOC / bean的實現方式 / 多執行緒 / 如何保證消息的順序性、消息不丟失、不被重複消費
6、介面冪等性 / bean的生命周期 / mysql 搜索引擎 innodb myisam的區別
7、@autowrite @resourse 區別 / 數組和鏈表
8、jvm 優化 / jvm 記憶體模型 / int類型運算的問題 / hashMap
9、spring boot啟動原理 / 高並發、多執行緒、框架、資料庫、分散式、底層
10、了解JVM性能調優、常見JVM垃圾收集演算法、Java並發框架與庫、Java記憶體模型
11、GC / spring 事務 / 為什麼要用資料庫連接池用的什麼
12、Redis實現分散式快取有哪些坑?如何避免快取穿透的問題?快取數據一致性如何解決?
13、MySQL Innodb 索引結構是 B+樹,具體 Innodb 的索引有什麼特性?如果遇到慢查詢、遇到高並發後,你從哪幾個方向去優化 MySQL?
14、交易場景下,你的狀態流轉是怎麼設計的?很多人全都是業務程式碼,你怎樣才能做到更高層面的抽象?
15、微服務架構下,對於服務降級和邊界條件,你是怎麼看的,一般都如何去設計?能結合實際場景,說說分散式事務、分散式鎖么?
-
說一個技術的時候,最好連帶著說出應用場景
-
一致性哈希、布隆過濾器、PAXOS、分散式一致性 ——> 應用場景 優缺點 舉例子
-
說一個演算法的時候,把類比的演算法都說出,兩階段提交、三階段提交,2pc,3pc,rap 論文作者怎們想的
-
將java的各種屬性的時候結合版本說,集合類、並發工具類變化比較多,1.8、1.9發生了什麼變化,jdk10\jdk13,比如13的時候支援python語法,string可以多行定義
-
面試官願意問比較擅長的東西
-
大廠面試都有嚴格的流程:作業系統1-2題 > 網路 > sql > 演算法 > 數學邏輯 > java基礎 ...
各個知識點都要涉及到,一般一個小時的面試的話,前20分鐘問以上基礎,後40分鐘問你擅長的東西,因為面試官手裡有一張表,會跟著流程表問問題,並對知識點打分,根據這個表打分,所有的知識點都會問到
-
面試官問一個知識點,可以說其他知識點,但不要把這個知識點說完再說其他知識點,比如再說hashmap的key value可以說為Null時就把hashtable不允許key value為null說出來
-
盡量把一個知識點講的有趣一些,因為面試官都懂,而且聽膩了,如果能聽到一些新鮮的一種說法或者說你講的更清晰,他會聽著更舒服,認為你理解的更深刻
-
知識點的講述方式儘可能和別人不一樣,對於應屆生來說,絕大多數人都是自學網上的文章或影片,那麼大多數人就會按照網上文章來講一個知識點,當大家都一樣的時候,如果能換一種說法,效果會更好。
最近也整理了一些技術書籍,大家有興趣的可以在公眾號(牧小農的夏天)回復,Java書籍,就可以免費領取了

四 總結

面試是表現自己不是考試,把自己當做一個商品來推銷,小農最近下班都比較晚,狀態大概就像上面這樣的,哈哈,不過程式設計師,加班是難免的,一句話干就完了,也希望大家能找到一個心儀的工作,好好生活,好好工作,入職公司後,低調做人,高調做事,大家加油~

