1. 程式人生 > >20屆的阿裏 頭條 網易 滴滴 百度 小米等Java面經

20屆的阿裏 頭條 網易 滴滴 百度 小米等Java面經

事務 cpu 長度 生命 單例模式 轉換 準備 老年 機制

20屆找實習之阿裏,頭條,網易,小米,搜狐,百度等面經合集(java)

個人博客:junxuelian.cn

總結:
個人感覺回答面試官問題不必太官方和書面化,騰訊sng招實習被發現照著百度百科念。結果可想而知。用自己的話和理解去回答就好。可能應屆生會抱怨設計題,個人感覺盡量去
做,把自己平時積累的知識點,思想和能力盡量去展示就好,可能面試官對你的回答期望不是太高。每面完,我就問面試官對我們在校學習有什麽建議,無外乎,努力,多寫代碼
多動手,保持持續學習的心態,關註一些新技術。加油你們都是最棒的!別太緊張了,這些技術面面試官人都很好的。目前面了幾家聊得都很愉快。

ps:從3月3號開始投簡歷,到10號吧!差不多一周。同樣的表,等到我20校招時候,拿出來做下對比。

難受,因為到崗時間限制,小米和網易均被放那了。他們的想法就是5月之前能招到能力差不多,到崗時間比我早的。就把我掛了,現在還沒有招到就放那了。如果5月沒有招到,估計就會發offer了。到手的只有搜狐的offer,還得到崗時間確定的前兩周,說具體時間給offer,實習最大的問題在於時間,沒錯。其實自己也能理解,我招實習生就是過來幹活的。我給你個offer你都來不了,還有一堆19屆的想來呢。後面不面了,好好修煉,畢竟面試也也挺費時間的。

技術分享圖片

頭條一二面(掛)

頭條1面:
自我介紹
項目介紹
平時使用開的環境
redis獲取一個hash的長度
用redis做過控頻嗎
能接受轉語言嗎
http狀態碼301,302
手寫快排
頭條2面:
網絡部分:
DHCP如何實現分配ip的
發現階段(DHCP客戶端在網絡中廣播發送DHCP DISCOVER請求報文,發現DHCP服務器,請求IP地址租約)、提供階段(DHCP服務器通過DHCP OFFER報文向DHCP客戶端提供IP地址預分配)、選擇階段(DHCP客戶端通過DHCP REQUEST報文確認選擇第一個DHCP服務器為它提供IP地址自動分配服務)和確認階段(被選擇的DHCP服務器通過DHCP ACK報文把在DHCP OFFER報文中準備的IP地址租約給對應DHCP客戶端)。

OSI七層模型,每層都說下自己的理解和知道的,說的越多越好
TCP和UDP的區別,TCP如何保證可靠傳輸的
說一下常使用的協議及其對應的端口
Linux部分:
I/O多路復用
進程間如何通信
動態鏈接和靜態鏈接的區別
進程的內存分布
如何查找一個進程打開所有的文件
設計模式:
工廠設計模式
單例設計模式
講一下,說一下應用的場景。

網易兩面(過,周一hr面)

自我介紹
hashmap
怎麽優化這段代碼
技術分享圖片
兩道簡單算法
1、求連續子數組的最大和問題
2、走格子,從一個出發點到終點,只能向上和向右有多少種走法,連障礙點都沒有
Java如何進行垃圾回收的
你用過哪些設計模式?回答:單例,觀察者,工廠,責任鏈,適配器
JDK中哪些實現了單例模式?java.lang.reflect.Proxy類,java.lang.Runtime類,線程池。
兩道設計題
第一道設計題:
比如我有個電商平臺,做每日訂單的異常檢測,服務端代碼應該寫。、
第二道設計題:
比如窩網易郵箱春節要做一個活動,我網易郵箱用戶量有3.4億吧!但是我只允許8千萬人參加,最後在8千萬人裏面產生一二三等獎,有一臺物理機和一臺數據庫服務器。你怎麽來設計。

二面
為什麽會有內核態,保護模式你知道嗎?
文件是怎麽在磁盤上存儲的?
有了進程為何還要線程呢,不同進程和線程他們之間有什麽不同。
進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是更好的支持SMP以及減小(進程/線程)上下文切換開銷。
dhcp數據包格式及其原理
innodb聚集索引b+樹葉子節點和磁盤什麽順序相同。

阿裏一面

1、自我介紹
2、全程懟項目,問的及其細,包括你為什麽選擇這種方案來實現,具體怎麽存儲怎麽做的,相當細,遇到這類面試官,項目不夠熟,就會翻車了。
3、redis原子操作怎麽用比較好
4、消息隊列會嗎?

阿裏二面

操作系統模塊:
1、說一下並行和並發的區別
2、你知道進程嗎?有進程為何還有線程?
3、操作系統是如何調度進程呢的
4、比如linux下我打開一個文件調用read函數,整個過程說的越
5、同步異步阻塞非阻塞IO詳細越好。
其他記不起來了。其實這些擴展開來就能說很多,就包含文件系統,進程管理和調度,就差內存管理機制了,我自己說了,虛地址保護模式。

網絡模塊:
TCP報文格式
TCP和UDP
擁塞控制
超時重傳
三次握手
滑動窗口
常見協議的端口號

數據庫模塊:
索引數據結構
索引優化
存儲引擎
事務(spring框架如何實現事務的呢)
分庫分表

Java模塊:
hashmap
Arraylist和linkedlist
voliate
線程池,如何根據CPU的核數來設計線程大小,如果是計算機密集型的呢,如果是IO密集型的呢?
countdownlatch和CyclicBarrier底層實現原理
線程狀態以及API怎麽操作會發生這種轉換

JVM:
他說只問三個問題,
1、垃圾什麽時候被回收
2、是怎麽回收的呢
3、忘了。。。。

分布式:
1、redis
2、分布式事務解決,你知道我們阿裏巴巴是怎麽做的嗎?
3、消息隊列
4、分庫分表
5、CAP
暫時只能記起這麽多

明天醒了再補,時長1小時17分鐘。你打住我知道你的掌握程度了期間這句話說了很遍。我知道了,你不用說的這麽詳細。我們不在這個上面糾纏了,下一個。

阿裏三面

自我介紹
hashmap
紅黑樹
微信附件人這個功能怎麽實現的
項目問的很多
就聊了20分鐘

小米一面(預估二面應該能過)

小米一面:
自我介紹
項目介紹
類加載機制
垃圾回收算法
G1垃圾回收器
hashmap,hashtable,concurrenthashmap(JDK1.8)
BIO和NIO
三次握手
流式計算
悲觀鎖,樂觀鎖
spring bean生命周期
進程和線程
linux下排查某個死循環的線程
Arraylist和linkedlist

解決hash沖突的方法

跳躍表

小米二面:

自我介紹
項目
如果你的項目出現了內存泄露,怎麽監控這個問題呢
一致性哈希算法
兩個單鏈表相交,找到交點共享文檔手寫代碼
nio和bio,bio底層怎麽實現的呢
select poll epoll區別
redis為何效率高

熟悉開源消息隊列嗎?講一下
ngix+redis集群+session共享或者同步
問下你有面試其他公司嗎?都有哪些offer呢
上午被他們看完博客,說一面太簡單了。
明明面了一個多小時,記不起來問題了(記起來了再補)

反正懟我的目的沒有達到~~。

搜狐(offer)

項目問得很細。
自旋鎖
標記清除和標記整理的區別和優缺點,為何標記整理會發生stoptheworld
mysql索引,最左匹配原則,!=為何會索引失效
寫sql舉例最左匹配原則
解釋下樂觀鎖和悲觀鎖
信紙上寫反轉單鏈表
你是找實習的,怎麽不早說呢,你過了。
其他記不起了。

ps:感覺Java基礎知識很少被問到了,上來都是細問項目,問的相當細,項目如果有漏洞就會對你很懷疑,想著怎麽更好的考察你。尤其18參加補招,因為後來面試官給我解釋,怕是我是專門應對面試的,準備了很多。

商湯

讓你設計一個cache如何設計
redis過期策略是怎麽實現的呢
mysql存儲引擎,更適合做哪種應用,
哪些情況下索引會失效
建立索引需要註意哪些情況
垃圾回收
CAS
新生代對象如何遷移到老年代對象
G1
ReentrantLock實現原理
spring aop
hashmap
concurrenthashmap
面試官我要招一個盡快入職,主要你時間不匹配,說這句話我就知道gg了,不過我會把你簡歷留著,再招的話可以通知你。

滴滴(offer)

滴滴一面:
很奇怪,這面試官不說話。讓你自己講,中間偶爾問下問題
,這是故作高深嗎?把畢生功力都展示出來了。
比如我虛地址保護模式是80286開始支持的,描述子裏面放讀
寫權限,地址空間,段基址,加上偏移量完成從虛地址到物
理地址的轉換。
CAP理論

mysql能講的都講了

netty源碼

Java差不多也是的,多線程,thread,runnable,從
cyclebarrier,countdownLatch,線程池到自定義線程池(緩存,拒絕策略,核心數)。
最後說一到兩周給通知。

百度

百度一面:
項目介紹
泛型
voliate
synchronized
項目異常你怎麽處理的
concurrenthashmap
百度二面(過):
項目介紹
進程和線程區別
linux系統啟動過程(越詳細越好)
守護進程和僵死進程
mybatis源碼
mysql能說的都說了
面試官說看了你博客,我對你有個大概了解,博客上面重復問題都沒有問,可能面試官對我印象比較好吧!技術就怎麽問,我們兩都去聊其他了的,他問我怎麽學習新技術,我就問他在校生學習技術建議,然後就給我講他們面19實習的時候,應屆生還是在乎基礎,設計題就是考你積累這麽多基礎知識,如何把有些思想和點用到項目中解決實際問題。應屆生主要是基礎的打造和可塑性。

20屆的阿裏 頭條 網易 滴滴 百度 小米等Java面經