1. 程式人生 > >(轉)畢業一年的菜鳥某東面試總結

(轉)畢業一年的菜鳥某東面試總結

轉載自: https://blog.csdn.net/KingBoyWorld/article/details/78513852

本人16年畢業,因為對IT感興趣,所以從大學就開始自學程式設計(工商專業),野路子出身。畢業之後找了一份工作,直到現在。鳥大了什麼林子都有,所以也想出去闖闖,就抱著試試看的態度面了某東,本想著見見世面,別太丟人就好,結果卻是意料之外,情理之中。過程中也意識到了自己的不足的地方,還是學習到了很多東西,分享一下。

筆試題

筆試題中大部分都是一些基礎性的知識技能,其中類似於jvm的知識其實是擴充套件的知識,用來考驗面試者平時的擴充套件閱讀,自學能力。

筆試題
現在有T1,T2,T3三個執行緒,你怎樣保證T2在T1執行完成後執行,T3在T2執行完成後執行執行?
Java中++i操作是執行緒安全的嗎?為什麼?如何使其執行緒安全呢?
3 * 0.1 == 0.3將會返回什麼?true還是false?
說下Java對空間結構,及常用的JVM記憶體分析命令和工具。
用什麼工具和方法分析執行緒問題?
列舉幾個索引失效的情況
畫一個時序圖描述出從使用者在瀏覽器位址列輸入url並按回車,到瀏覽器顯示相關內容的各個過程
8.有一個servlet,提供對外服務,10個請求下建立了幾個Servlet例項?
有如下表create table T_a(id bigint primary key,status int)使用者A和使用者B幾乎同時對錶裡同一條資料的status欄位進行更新,其中A使用者是將status欄位從0變到1,B使用者是從0變到2,如何保證最先執行的結果不被後面執行的結果覆蓋掉?
在jdbc程式設計中, 如何避免sql注入漏洞?
如果由你編寫一個類似於guava中的快取元件,有哪些場景需要考慮,以及你的解決方式?

第一面

其中1、5、11題寫的不是太好,寫完之後,就進行第一面了,面試官拿著筆試答案看著簡歷就開始問了很多問題,都是相對基礎的問題,從JavaSE到框架,再到專案,其中框架問的不是太多。xxoo了一大堆,和麵試官尬聊了很久,大概四十分鐘左右,覺得自己回答的並不是很好,只回答出了大概60-70%的技術問題,內心很忐忑,覺得要掛了。然而出乎意料的是面試官走的時候說答的很好,讓我等下一面(小小激動了一下)。執行緒、aop、集合、es、微服務、設計模式問的比較多一點。例如aop的本質是什麼?es你是如何使用的怎麼優化?你在專案中在哪些情景使用了哪些設計模式?什麼是微服務?

第二、三、四、五面

這幾面基礎的技術倒沒有聊的太多了,主要問一些對於框架的理解還有思想性的東西。一般面試官來了之後都是先做以下自我介紹,然後會從你的自我介紹中進行連環炮轟擊,從一個技術點聊到另一個技術點,而且問的都很深,我是很萌比的。最後一面是技術總監面,問了很多關於架構方面的知識,我也就只能知道啥就說啥了,不會的我就反問如何去解決。最後和我說技術面都通過了,內心激動了好久,我居然能過?!

人事面

回到家正在睡覺呢,一個電話過來了,級別T3,詢問了是否單身,住址,薪資要求什麼的,幾分鐘就完事,雖然最終我沒過,因為學歷問題,三本,想哭……同時也下定決心要考個研玩玩。

技術面的問題總結(想不全了,拿走不謝)

說的內容一定要真實,不能有虛假成分

1. 做下自我介紹
2. 反射的本質是什麼
3. sync鎖,鎖的是什麼
4. 常用的設計模式有哪些,說下你用過哪些?再什麼的場景
5. spring預設是單例的,還有哪些域?什麼情況下使用?
6. spring的aop是通過什麼實現的?實現的原理    包括cglib java動態代理
7. 用過哪些執行緒池工具?
8. set list map是實現同一類介面嗎? map的介面是什麼?
9. 說下 arraylist/linkedlist內部實現的資料結構?hashmap底層的資料結構是什麼樣的? hashmap和concurrentHashMap的實現
10. es查詢操作怎麼寫?filter 和matches有何區別?
11. es有哪些應用場景?你在專案中是如何使用的?常用的api有哪些?
12. 你做過的專案中,哪個是你映像最深刻的?有哪些獲得?遇到過什麼讓你記憶猶新的坑?這些坑是如何解決的
13. lambda本質,
14. 內部類使用過嗎?什麼場景下用?(是個坑,其實幾乎不使用)
15. 什麼是微服務?說說你對微服務的理解?
16. tomacat如何優化? nginx如何優化?
17. nginx負載策略有哪些?hash   weight 輪詢
18. jvm記憶體結構什麼樣的?
19. 有哪些垃圾回收器? cms parnew g1 serial
20. A微服務呼叫B微服務,之間的異常如何處理?異常呼叫鏈
21. 分散式事務
22. redis有哪些資料型別?有哪些應用場景?session分離 排序 快取 全域性鎖
23. 你做過的mysql表設計中,平均一個表有幾個索引?索引在什麼情況下失效,列舉幾個例子
24. git的常用命令,內部的結構,
25. 介紹下springboot,springboot有什麼特點?starter   自動配置
26. 說下springcloud的工作流程,為什麼要有分散式框架?服務是如何發現的,如何做負載的?
27. 分散式事務的cap理論,
28. spring事務的傳播機制,
29. oom如何排查?   dump  分析gc日誌
30. 瞭解前臺哪些框架? vue  ,vue用的是什麼設計模式?
31. nio和bio的區別?1.程式碼寫法 2.堆內記憶體和直接記憶體 3. selector channel
32. 接觸的第一門程式語言?你是怎麼自學的?
33. 你是非計算機專業,那麼你是怎麼自學來補齊其他計算機專業知識的?
34. 你平常自學是通過什麼途徑來學習的?

總結下整個流程吧,

關於面試: 
心態很重要!心態很重要!心態很重要!一定要自信,相信自己,就算過不了又如何?兩年後還是一條好漢!在面試中要體現出你的自信好學,其實我之所以能通過所有技術面,和我的好學是分不開的,他們更加看中一個人的自學能力,可以從兩個方面說: 
1. 例如在面試中我會”無意”提到spring官方文件中的描述,EffectiveJava中的實踐練習等。 
2. 面試中一些不會的點,可以記下來,到最後問問面試官,學習下解決思路,我們自己能學習到知識,同時也會給自己加分。

其中我記憶比較深的一個問題:如何去學習技術?這是我問面試官的一個問題,關於這一點我其實是比較困惑的,我喜歡列出學習計劃,列出學習路線,然而總是無法堅持到最後,即使學過的技能,過一段時間可能還是會生疏。而面試官給我的解答是從業務中找點,從點深挖出一條線。這句話懂或不懂的慢慢體會,看到了一條對於我而言可能是正確的到路,值得我去嘗試。

簡歷上面不熟悉的技術千萬別寫,面試官會問到讓你無話可說。在面試過程中,千萬記得不會的就是不會,別蝦扯蛋,沒用的,只會給自己減分,誠實一點會更好。

個人總結: 
在技術面試完之後,和大部分的面試官都交流了一下,問了他們我有哪些不足的地方,得到的結果出奇的一致:理論知識充足,實踐欠缺。排除工作時間,仔細想想自己走的路,一直有些太浮躁了,盲目的追求新技術,微服務,新utils,對每一個點卻沒有深入的研究,缺乏實際的技術實踐。接下來要沉下心,從實際業務場景觸發,沉澱自己的技術實踐能力。也希望和我有一樣感受的同學一塊努力。