簡介
面試是上海的Java崗位,周日一輪面試,自我感覺答的都還不錯,
結果收到郵件面試結束了,說什么"你優秀的學識和能力給我們留下了深刻的印象!經過對你綜合情況的仔細評估,并經過與崗位需求進行謹慎匹配和權衡之后, 非常遺憾,我們這次沒有和你達成合作,但你的資訊已經被錄入到公司人才庫",意思就是掛了唄,
后來打電話問hr,說是我擅長的技術不是他們所需要的,???(黑人問號),然后面試程序中,有一點奇怪的地方,面試前面試官跟我說我面的而這個崗位有點奇怪,他也沒跟我說哪奇怪,
本文分享給需要面試刷題的朋友,另外本人也整理了一份資料包含了Java基礎,資料結構,jvm,Redis,并發多執行緒,分布式,資料庫等等,由于篇幅有限,以下只展示小部分面試題,有需要的朋友可以點擊進群795983544領取,暗號CSDN

面試官的問題:

1.自我介紹
2.介紹印象深刻的專案,我介紹的是最新在做的專案,用到的技術,自己做的哪些模塊?
- 回答:講了用到的設計模式——模版方法,然后講了模式方法的實作
3.因為最新的專案用到了,問了Spring Boot,Spring的區別?
- 回答:去配置化話,然后其他的基本一樣,順便說了一下Spring MVC的原理
4.Spring 的 bean是什么?我說了IOC、DI、Bean之間的關系
5.Hibernate 和 Mybatis的區別?
6.因為專案中用到了webservice,問了創建的方式,怎么訪問?
- 回答:通過SOAP協議訪問,創建的方式我忘記了…(我用的是EndPoint發布的)
7.因為簡歷中講到了我個人的電商秒殺系統(個人喜好寫的,提升自己的技術堆疊)問我怎么實作一個高并發系統?
回答:
橫向擴展(用nginx實作負載均衡,提高服務器性能等等)
縱向擴展
- MQ佇列實作異步下單,減輕服務器的壓力
- redis快取減輕資料庫的壓力,redis的演算法原理,常用的hash演算法、以及一致性hash演算法的原理,然后就說具體的做法了,SSO單點登錄的時候用redis中存放用戶資訊
- 快取秒殺串列界面的方式
- 前后端分離的開發模式
其實還有很多個,不過我沒有用到,比如說服務降級(天貓雙11的時候經常會關閉一下評價或者說不怎么常使用的模塊)、資料庫分庫分表
8.執行緒的創建方式?怎么實作執行緒安全?
回答:通過多個執行緒對static的變數進行++操作,
(1)利用A.Q.S的相關類比如說AtomicInteger的執行緒安全的類,順便說了一波實作原理CAS演算法(看過相關
的博客,略懂),Java的記憶體模型等等
(2)利用執行緒封閉的方式,
(3)利用synchronized、Lock的方式,順便說了一下兩者的區別,
(4)我還說了一些執行緒不安全的類,比如說HashMap(大概說了一下原始碼實作),可以使用concurrenthashmap (說了分段鎖,其實也是利用CAS演算法)…
(5) volatile關鍵字實作執行緒安全的用法以及場景,因為volatile保證了執行緒的可見性、禁止指令重排序,可以用來做來狀態變數,如果比如說
//執行緒1
boolean stop = false;
while(!stop){
doSomething();
}
//執行緒2
stop = true;
因為volatile不具備原子性操作,不適合用來作為原子性操作的場景
9. 只有static的變數是不安全的嗎?還有別的嗎?
回答:堆、方法區都是執行緒共享的,堆疊是執行緒獨有的,比如說類變數、靜態變數都是放在堆、方法區中的,會有執行緒不安全的情況,堆疊中的內容是執行緒獨有的,然后再說了下Java的記憶體模型,從主記憶體到執行緒的堆疊記憶體
10. 敏捷開發懂不懂?
回答:舉例了平時的專案(類似敏捷開發):每周出一次build,然后客戶不滿意,改,繼續出build;改bug,QA測驗有問題,繼續改…
11. 個人電商專案的訪問數量級?有沒有并發的數量要求?
回答:我說因為是個人專案沒有統計具體說是什么,會使用Jmeter工具測驗優化前后的QPS變化量
12. 怎么保證代碼質量?
13. 公司專案的數量級,資料庫的量級?
…
好了,一個小時多的面試就結束了
面試中的細節
之所以是細節雜談,說實話,是因為真的不知道可以寫什么,網上關于面試的文章很多,大概看了幾篇之后,更不知道寫什么了,而根據自己的面試經驗來看,發現其實有很多細節,在面試的時候都沒有被好好重視起來,所以,這里針對這些細節做個總結,細節決定成敗,也希望可以對你們有所幫助,

1. 準備一個良好的開場白
首先筆者理解的自我介紹的作用是緩解初次交談的尷尬以及過渡開場,然后才是擴展為對候選人的口才、邏輯以及表達能力的判斷,
如果你實在不知道怎么說,即便是把你簡歷上的姓名、年齡、愛好、作業經驗復述一遍,至少也是起到了暖場的作用,當然要是能基于此,表現出一定出彩的地方,那自然是再好不過,多花點心思準備是值得的,
最近看到一個有趣的分享,唐僧每次介紹自己:貧僧唐三藏,從東土大唐而來,去往西天拜佛取經,其實這幾句話包涵了每人都要問自己的三個問題:我是誰?我從哪里來?我要到哪里去?在面試中也可以總結為三個問題:我是誰,我的學習和作業經歷?我有什么技術亮點?
2. 謙虛是必要的,因為這是禮節
很大程度上,面試官還有一個身份就是以后可能要一起共事的同事或者老板,所以切忌不要表現的心高氣傲,尤其在電話面試中,很難在短時間就能了解一個人,你所表現出的態度就顯得非常重要,如果和面試官產生了爭論,要注意談話技巧,可以在你的觀點前加上我理解的是什么什么…
就連牛頓說他不過是站到了巨人的肩膀上了,所以永遠不要覺得自己有多牛,真正牛的人只會更謙虛,
3. 大招放的好,作業何愁找
何謂大招,首先對于候選人來說,技術面試所涉及的深度和廣度是很難全部顧及的,加之每個面試官的問題又會多種多樣,所以與其擔心被問到自己不熟悉的領域,不如挑幾個自己的熟悉的技術點深挖下去,總結和形成自己的一套理論,
之前看到一句話說的很好,面試的本質不是一問一答,而是亮點展示(放大招),所以要學會掌握面試的主動權,把話題盡量往自己擅長的地方引,當然陳述的時候記得一定要簡潔扼要,
4. 演算法題 — 知之為知之,不知為不知
面試中問到演算法題,如果不知道就明確表示不知道,切記不要裝做知道,然后不知所云的說了一大推,這樣反而會給面試官留下比較差的印象,面試評價上也會比較難看,很有可能也會影響你后續的面試,
不用擔心回答不知道,就感覺沒戲了,這里一般有兩種情況:一種確實是對演算法要求高的職位,那沒辦法了,只能回去好好加強一下,來日再戰,還有一種情況主要是考察你的綜合能力,你其他方面的能力表現的非常好,可以彌補,不會有影響的,嗯,筆者當時就屬于第二種(強行炫耀),
5. 還有一些小細節
-
簡歷遵循 STAR 法則,內容才是王道,對于某些大廠來說,都會有自己的招聘系統,而你精心打造的酷炫簡歷在匯入到后臺后,會變得面目全非,你的簡歷樣式做的再好看也沒用,少在樣式上下功夫,多在內容上下功夫,
-
聽到面試官的問題后,先不要急于回答,給自己幾秒的思考時間,多站在面試官的角度去思考這個問題應該怎么答,比如當問到你覺得你最大的優勢是什么?有些同學會直接回答熱愛技術……然后…然后就沒有了,這樣顯然毫無說服力,如果加上一句,經常瀏覽國外優秀的技術博客、在 GitHub 參與和貢獻自己的開源力量,是不是就好很多了,
-
面試結束后,不要覺得不好意思,或者覺得沒有必要,對面試官說一聲:“謝謝,辛苦您了”,就我個人經驗來說,畢竟大部分負責的面試官都會和你聊比較長的時間,也會盡可能挖掘你的技術亮點,結尾給面試官留個好印象,如果沒有通過,至少對你的面試評價上也不會太難看,
最后
如果你覺得自己學習效率低,缺乏正確的指導,可以加入資源豐富,學習氛圍濃厚的技術圈一起學習交流吧!
群內有許多來自一線的技術大牛,也有在小廠或外包公司奮斗的碼農,不一定能短期就讓每個人的技術突飛猛進,但從長遠來說,眼光,格局,長遠發展的方向才是最重要的,

35歲中年危機大多是因為被短期的利益牽著走,過早壓榨掉了價值,如果能一開始就樹立一個正確的長遠的職業規劃,35歲后的你只會比周圍的人更值錢,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/229254.html
標籤:其他
上一篇:虛驚一場,差點掛在美團三面,罪魁禍首居然竟是“Redis”?
下一篇:資料結構:線段樹實作詳解

