網易社招面經,純乾貨分享

我的背景

本人畢業於二流一本大學非計算機相關專業,大三下學期開始學java。目前恰好工做兩年,專業後端,base深圳。java

面試流程

一面二面電話面-->三面四面視頻面-->主管電話面-->hr電話面
整個流程下來就兩個禮拜,比阿里高效多了。因爲面試的是網易杭州研究院的職位,原本三面經過後hr聯繫我說是要去杭州總部讓主管進行個現場面試,而我在深圳,就告訴hr我這邊不方便看能不能安排視頻面試,而後就又加了一輪技術視頻面。順帶說一句,網易的hr真是超級nice啊,加了微信私下聊得很嗨皮~mysql

重點:面試題

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(這一塊我不太熟就說沒了解過,面試官就沒細問了)linux

開源框架

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?nginx

數據庫

1.mysql索引是怎麼實現的?b+樹有哪些特色?真實的數據存在哪裏?
2.哪些狀況下建索引?解釋下最左匹配原則?
如今一個表有三列a b c,組合索引(a,b,c)查詢的時候where a like ? and b=? and c=?能用到這個組合索引嗎?爲何?
3.explain執行計劃看過沒有?其中type字段都有哪些值?分別表明什麼?
4.你有哪些sql調優經驗?面試

Redis

1.redis有哪幾種數據結構?給你一個key怎麼知道是用的哪一種結構?
2.怎麼查看全部的key?redis怎麼切換庫?怎麼清數據?
3.描述下redis淘汰策略?若是沒有數據能夠淘汰活着沒有配置淘汰策略讀請求能夠正常執行嗎?
4.大家項目裏redis是單節點的嗎?若是多節點怎麼同步?
5.項目裏用redis存哪些數據?爲何用redis?和jetty本地緩存有什麼區別?redis

網絡

1.HTTP 1.1版本增長了哪些內容?有哪幾種請求方式?
2.描述下HTTP三次握手和四次揮手過程?爲何須要四次揮手?爲何TIME_WAIT狀態須要通過兩個最大報文段生存時間才能到close狀態?
3.瀏覽器發起一個請求到收到響應中間經歷了哪些過程?知道多少就說多少,越詳細越好。算法

Nginx

1.nginx有哪些模塊?你比較熟悉哪一個?
2.proxy_cache你是怎麼配置的?緩存是存在哪裏?具體是怎麼命中緩存的?
簡歷裏有寫nginx,結果問得幾個問題我都沒答好,面試官就沒再多問了,囧~spring

Linux

1.怎麼查看某個進程中的線程?
2.怎麼批量替換一個文件夾下全部文件中的一個字符?(sed命令)
3.有沒有用過jps jmap jstack jstat 命令,分別說下有哪些經常使用參數,知道多少就說多少。
我這裏結合本身用jmap jstack定位到線上問題的經驗說的,答完後感受面試官挺滿意的,因此說實踐很重要啊~sql

情景模擬&其餘

1.設計一個系統,天天有100億條數據,須要在後臺作實時展現和查找。
我當時回答的大致思路是nginx負載均衡,消息隊列存儲,多線程讀取,批量插入,數據庫分庫分表。
面試官根據個人回答又衍生出了不少問題,如消息隊列存滿了怎麼辦?(也就是消費跟不上生產)批量插入時某一條失敗了有什麼影響?怎麼解決?分庫分表應該怎麼分?怎麼解決數據遷移的問題?
2.用代碼實現cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。
3.若是如今有一臺服務器忽然變得很慢,怎麼去定位問題?數據庫

感悟

1.不要妄自菲薄。
不少人以爲本身學校很差專業不對口,進不了大公司,連去面試的勇氣都沒有,其實越是大公司越是看重我的能力而不是歷史戰績。
2.面試前必定要準備充足,否則就是浪費雙方時間。
不少人不屑於臨時抱佛腳,你若是以爲這是臨時抱佛腳那就是擡槓了。我這裏說的準備主要有兩點:第一,簡歷上的內容必定都是本身很熟的東西,面試官會根據他感興趣的地方衍生出不少問題,可能問到的點都提早想一下。第二,必定要有一兩個本身很熟悉的領域,能夠具體到某個技術點或者某個框架,可是必定要研究透徹。
3.要善於思考、總結、反思,這些能力是能夠訓練的。

寫在最後

這裏只列出了網易面試中問到的問題(其餘公司問得也都差很少),問題帶答案面經:阿里面經網易面經

相關文章
相關標籤/搜索