個人背景
本人畢業于二流一本大學非計算機相關專業,大三下學期開始學java,目前剛好作業兩年,專業后端,base深圳,
面試流程
- 一面二面電話面
- 三面四面視頻面
- 主管電話面
- hr電話面
整個流程下來就兩個禮拜,比阿里高效多了,面試的是網易杭州研究院的職位,本來三面通過后HR聯系我說是要去杭州總部讓主管進行個現場面試,而我在深圳,就告訴hr我這邊不方便看能不能安排視頻面試,然后就又加了一輪技術視頻面,順帶說一句,網易的hr真是超級nice啊,加了微信私下聊得很嗨皮~
作為閱讀福利,我也把我的復習資料(Java學習筆記+面試真題)都整理好了,需要的可【點擊此處】領取,

重點:面試題
面試題內容包括Java基礎、開源框架、資料庫、redis、網路、Nginx、Linux、情景模擬&其他
java基礎
1.定義Integer x=20 Integer y=200 在記憶體里是個什么程序?
2.volite關鍵字的原理?它能保證原子性嗎?AtomicInteger底層怎么實作的?
3.threadLocal關鍵字有用過嗎?如果沒有重寫initialValue方法就直接get會怎樣?
4.hashMap與concurrentHashMap原理和區別?
hashMap什么情況下會出現回圈鏈表?concurrentHashMap寫的時候用什么鎖?RenteenLock底層是怎么保證執行緒安全的?
5.反射能獲取到父類的私有方法嗎?怎么防止反射破壞單例模式?
6.描述下JVM記憶體模型,每個區的作用是什么?堆記憶體的作業原理,為什么需要兩個幸存區?只有一個行不行?老生代是用什么垃圾回收演算法?
7.描述下多執行緒原理,怎么開啟一個執行緒?start和run方法有什么區別?
怎么創建一個執行緒池,傳入的引數分別什么含義?執行緒池是怎么實作維持核心執行緒數的?怎么實作一個自定義的拒絕策略?
8.Socket編程 nio(這一塊我不太熟就說沒了解過,面試官就沒細問了)
開源框架
1.你用過哪些開源框架?最熟悉的是哪個?(這里我說了spring,所以后邊的問題都是圍繞spring的)
2.描述下spring的ioc和aop,
你常用哪一種注入方式?BeanFactory和ApplicationContext有什么區別?你們專案里用的哪個?說一下spring bean的生命周期,
AOP實作原理是什么?兩種動態代理實作原理?JDK動態代理為什么要實作介面?
3.spring task是怎么實作的?
4.spring事務你是怎么用的?加了@Transcational注解spring都做了哪些作業?怎么知道事務執行成功了?
事務隔離級別?mysql默認級別是什么?事務傳播屬性?spring默認是什么?嵌套事務子事務什么時候commit?
5.spring和springMVC是什么關系?有沒有用過JdbcTemplate?
6.springMVC中對整個請求的處理流程是怎樣的?回傳json的話是用哪個view?
資料庫
1.mysql索引是怎么實作的?b+樹有哪些特點?真實的資料存在哪里?
2.哪些情況下建索引?解釋下最左匹配原則?
3.現在一個表有三列a b c,組合索引(a,b,c)查詢的時候where a like ? and b=? and c=?能用到這個組合索引嗎?為什么?
4.explain執行計劃看過沒有?其中type欄位都有哪些值?分別代表什么?
5.你有哪些sql調優經驗?
Redis
1.redis有哪幾種資料結構?給你一個key怎么知道是用的哪種結構?
2.怎么查看所有的key?redis怎么切換庫?怎么清資料?
3.描述下redis淘汰策略?如果沒有資料可以淘汰活著沒有配置淘汰策略讀請求可以正常執行嗎?
4.你們專案里redis是單節點的嗎?如果多節點怎么同步?
5.專案里用redis存哪些資料?為什么用redis?和jetty本地快取有什么區別?
網路
1.HTTP 1.1版本增加了哪些內容?有哪幾種請求方式?
2.描述下HTTP三次握手和四次揮手程序?為什么需要四次揮手?為什么TIME_WAIT狀態需要經過兩個最大報文段生存時間才能到close狀態?
3.瀏覽器發起一個請求到收到回應中間經歷了哪些程序?知道多少就說多少,越詳細越好,
Nginx
1.nginx有哪些模塊?你比較熟悉哪個?
2.proxy_cache你是怎么配置的?快取是存在哪里?具體是怎么命中快取的?
簡歷里有寫nginx,結果問得幾個問題我都沒答好,面試官就沒再多問了,囧~
Linux
1.怎么查看某個行程中的執行緒?
2.怎么批量替換一個檔案夾下所有檔案中的一個字符?(sed命令)
3.有沒有用過jps jmap jstack jstat 命令,分別說下有哪些常用引數,知道多少就說多少,
我這里結合自己用jmap jstack定位到線上問題的經驗說的,答完后感覺面試官挺滿意的,所以說實踐很重要啊~
情景模擬&其他
1.設計一個系統,每天有100億條資料,需要在后臺做實時展示和查找,
我當時回答的大體思路是nginx負載均衡,訊息佇列存盤,多執行緒讀取,批量插入,資料庫分庫分表,
面試官根據我的回答又衍生出了很多問題,如訊息佇列存滿了怎么辦?(也就是消費跟不上生產)批量插入時某一條失敗了有什么影響?怎么解決?分庫分表應該怎么分?怎么解決資料遷移的問題?
2.用代碼實作cat 1.log |grep a |sort |uniq -c |sort -rn 的功能,
3.如果現在有一臺服務器突然變得很慢,怎么去定位問題?
感悟
1.不要妄自菲薄,
- 很多人覺得自己學校不好專業不對口,進不了大公司,連去面試的勇氣都沒有,其實越是大公司越是看重個人能力而不是歷史戰績,
2.面試前一定要準備充足,不然就是浪費雙方時間,
- 很多人不屑于臨時抱佛腳,你如果覺得這是臨時抱佛腳那就是抬杠了,我這里說的準備主要有兩點:第一,簡歷上的內容一定都是自己很熟的東西,面試官會根據他感興趣的地方衍生出很多問題,可能問到的點都提前想一下,第二,一定要有一兩個自己很熟悉的領域,可以具體到某個技術點或者某個框架,但是一定要研究透徹,
3.要善于思考、總結、反思,這些能力是可以訓練的,
寫在最后
這里只列出了網易面試中問到的問題(其他公司其實問得也都差不多)需要上述面試題及答案檔案可【點擊此處】即可獲得,以下資料也可點擊鏈接領取!
Java核心知識點

1000道互聯網工程師面試題

大廠面試真題

視頻學習資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289281.html
標籤:其他
