java研發面經:滴滴、美團、網易、58趕集等

今年秋招我的面試大致結束了,差不多把提供北京java崗位的互聯網公司大都投一遍,也獲得了幾個面試機會,以后可能不常上??屯?,在這兒把面經都和大伙兒分享一下吧。先感謝下??屯橢詼嗯S衙?,刷了大概有1千多題,媽媽再也不用擔心我過不了在線筆試了~

1、滴滴 
    先吐槽下滴滴面試安排,如果你通過了一面,那么就優先安排后面的面試,所以導致還沒一面的人就得一直苦等。那會兒我是下午一點去的,大概到了快4點才進行一面,后面就嗖嗖嗖地過關斬將到了hr面,也算是運氣不錯吧。

交叉1面 
垃圾回收算法
(代碼)01矩陣,相鄰的1是一個島嶼,找出所有島嶼數(遞歸解決)
有關注過開源社區嗎,都看過哪些源碼
AtomicInteger實現原理(CAS自旋)
synchronized和reentrantLock區別
介紹spring的IOC和AOP,分別如何實現(classloader、動態代理)
redis如何處理分布式服務器并發造成的不一致(本身就是單線程序列化的隔離級別),如果數據庫不提供隔離呢
OSGi的機制(因為簡歷寫了)
交叉2面 
2個雞蛋,100高的樓,最少的次數測出雞蛋碎掉的臨界層,沒碎的雞蛋可以反復用(沒做出,應該是14次,網上有解法)
大量字符串找出數量最多的K個,考慮內存放得下和放不下兩種情況
解釋mysql索引、b樹,為啥不用平衡二叉樹、紅黑樹(磁盤和內存的存儲方式不同)
垃圾回收算法,為什么要分代處理
跳表(不熟,沒繼續)
IO(不熟,沒繼續)
epoll(不熟,沒繼續)
一致性hash
zookeeper如何同步配置(不熟,沒繼續)
講下java鎖的原理
ConcurrentHashMap原理
BOSS面 
(代碼)最長回文子串
GC停頓原因,如何降低停頓

JVM如何調優、參數怎么調
如何用工具分析jvm狀態(visualVM看堆中對象的分配,對象間的引用、是否有內存泄漏,jstack看線程狀態、是否死鎖等等)

進程和線程區別
epoll和select區別(不熟,沒繼續)
解釋mysql索引、b樹
hr面 
五個詞來描述自己
長期的計劃
興趣愛好
期望薪水
對崗位的要求

已經拿到的offer
   hr告訴我滴滴主要還是用c和php(看來我這次算是誤打誤撞),然后和我說php多快呀,多容易呀,要不要到碗里來?呵呵呵

java崗面

(代碼)含Double數據的list,找出最長連續遞增序列的長度(連續遞增比較簡單,看你代碼質量)
找出最長遞增子序列的長度,說思路(dp算法,復雜度O(n))
mysql中int的最大填充長度(我記得是255,被告知是錯的),varchar不同編碼下的存儲字符個數
寫SQL,多表連接查昨天的第二多的值
js題,考察閉包

2、美團
    美團的面試安排在下午,不用早起真好~ 等候區就在1樓,工作人員供了面包和一次性杯子,旁邊就是運動區,有跑步機、乒乓球桌、桌上足球及一些運動器材,感覺環境還是很不錯的(此處應該吐槽下京東,場面極其混亂)。

       面試一共三輪,會有工作人員叫名字讓你進去面試,就是中間的等待有點久。每輪通過的話就會留下來接著下一面,沒過的話工作人員會告訴你“很抱歉,你今天的面試已經結束了”,特別是在漫長的等待中,周圍的人一個個被“很抱歉”,那個心理壓力可不是一般大。然后就是全部的面試經過,大概整理了下,發現運氣還不錯,都可以答得上來。面試問題只是參照,面試官會根據你的簡歷來問針對性的問題,而你也可以引導他來問你擅長的領域,當然有些基礎的東西還是必須了解的,比如jvm、spring框架、持久化框架、數據庫之類的。
一面 
介紹實習經歷,講項目
解釋https (先公私鑰加密,再對稱加密) 為什么不直接公私鑰
jvm中類加載過程,解釋雙親委派加載,及類是在哪個加載器加載的
傳值、傳引用 傳入對象引用,指向一個new的對象,問主函數里的會變嗎
找出數組中最多的那個數,除了hashset還有沒其他方法(只想到蒙特卡羅法)
(代碼)輸入合法的數字字符串,輸出貨幣字符,就是每隔3位加個逗號,考慮邊界處理
(代碼)有1-10 10個數,和一個數sum,計算用10個數連加得到sum有多少種系數組合(遞歸)
二面 
自我介紹,講項目
spring中bean加載機制,bean生成的具體步驟
ioc注入的方式
spring何時創建applicationContext(web.xml中使用listener)
listener是監聽哪個事件(ServletContext創建事件)
springMVC流程具體敘述下
synchronized和reentrantLock的區別,synchronized用在代碼快、方法、靜態方法時鎖的都是什么
介紹ConcurrentHashMap原理,用的是哪種鎖,segment有沒可能增大(不會,只會增大每個segment中的entry數組)
如何實現高效的同步鏈表
(代碼)層次遍歷二叉樹,偶數層輸出逆序輸出(隊列,用一個標記記錄每一層的結束,統一輸出當前層)
三面 
介紹實習經歷,講項目
(代碼)給定一個字符串,寫出所有可能的全排列(遞歸)
剩下的就是問一下hr面的問題:
怎么理解踏實,你在項目中哪兒體現到了
最近最有成就感的事
你的優點 缺點
最近在看的技術
是否寫過其他個人興趣的小項目
寫技術博客嗎,github呢
個人職位目標

    三面的面試官還是很nice的,最后的部門好像也是由三面的來挑。面試結束第二天就讓簽了兩方,待遇也沒得談。

3、網易 
   面試等待時間趕超了滴滴,上午10點等到下午兩點才剛開始一面。hr面結束都5點多了,正趕上下班高峰期,公交又堵了好久,回去后感覺渾身都已經無力了。
一面 
介紹了下阿里的實習項目,問了下對SOA和OSGi的認識,以及之間的關系
項目中遇到的最難忘的問題,如何解決的(網上搜索、問經驗豐富的、斷點調試跟進源碼、技術論壇發帖)
問了擅長的java領域,針對性提問(jvm、容器、并發)
介紹jvm內存機制(把各個內存區域作用、回收算法、收集器分類統統說了一遍)
創建線程方式(實現runnable接口、集成Thread、線程池)
java都有哪些加鎖方式(synchronized、ReentrantLock、共享鎖、讀寫鎖等)
想讓所有線程都等到一個時刻同時執行有哪些方法(介紹了下CountDownLatch和CyclicBarrier)
volatile的作用(使變量對所有線程可見,同時禁止指令重排序)
都用過哪些java容器,LinkedList都一般都在什么時候用到(經常插入刪除時、實現隊列和棧時)
介紹ConcurrentHashMap(分段加鎖,幾乎每個面試都問這個。。。)
Object里頭都有哪些方法,著重問了clone(深復制還是淺復制)、finalize(一般在什么時候用,回收時一定能被運行)
二面 
問題和一面差不多,很多重復的就不說了
如何管理線程(介紹了各種線程池的實現)
如何讓線程A等待線程B結束后再執行(join、單線程池),還反問單線程池真的可以嗎,所以大致和他介紹了下阻塞隊列的機制
如何優化jvm參數(堆大小、xmx一般和xms設成一樣大、永久代大小、收集器選擇、收集器參數、新生代對象年齡閾值等)
hr面 
很少見的男hr,性格溫和,談起來很輕松愉快
介紹所有的項目
對在阿里的實習如何評價,對mentor如何評價
在阿里有沒什么讓你比較惋惜的地方(內部論壇資源非常豐富,都是大牛的知識帖,后悔看得太少)
喜歡何種風格的領導,是嚴格的技術型還是寬松的管理型
你的職業規劃,轉管理還是一直技術
喜歡的興趣愛好
針對我寫到的旅游又問了,去哪兒旅游過,通常都是如何準備一次旅行的(查各種攻略、做旅行計劃,叫上小伙伴),是否寫游記呢(很少),對寫游記的人如何評價(為他們點贊~)
最近在看什么書籍呢(各種技術類書籍)
是否能提前來實習
已經拿到的offer
目標薪資

4、58趕集 
  58就在798旁邊,面試完后特地去在寒風中感受了下藝術氣息。簽到的時候可以看到自己筆試的分數,貌似是按分數排的面試順序。不想更加糾結所以放棄了二面。
一面 
終于遇到一位年輕且頭發還算茂密的面試官了,還蠻熱情的
閑扯了下項目
介紹spring的IOC和AOP,容器的概念(本質就是applicationContext管理了classloader)
bean的創建過程
手寫TCP三次握手(最好把狀態也寫出來),每次請求的序號是如何變化的
TCP如何控制擁塞(擁塞窗口、慢開始、擁塞避免、快重傳、快恢復)
(代碼)N個男生,N個女生,給出所有排列方式,其滿足在任意i處(范圍在[0,2n-1]),0-i的女生數都大于男生數(遞歸實現)
知道哪些排序算法,介紹一下快排

5、京東 

   在某天晚上突然收到第二天早上去京東面試的通知,而且用的還是電話語音,9月22日讀成九點二二 是什么鬼!面試現場比較混亂,一邊的人在排著隊,一邊是有負責人出來循環播放“XXX在嗎”……當天只安排一輪面試,大約等了一小時才見到面試官,面試官貌似是做管理的,技術性問題不多。介紹完項目后提出了一些場景問你如何解決,如何實現分布式,一般在哪兒用redis等等,面試過程很短一下就結束了?;厝ズ蟀胍褂質斬嬙ㄖ?,又是那個電話語音,我當時的內心是崩潰的……但是面試時間和美團的沖突了,并且根本找不到hr聯系方式,京東的面試就在此止步了。

    還有幾家公司的面試,要么不大合適,要么就是跪了,就不細說了。希望大伙兒都能找到滿意的工作,特別是到了校招后期,心態可能會變化比較大,可以來場說走就走的短途旅行緩解下壓力,不要過于苛求自己,祝一切順利!

來源:??屯?/p>

上一篇: Java 有值類型嗎?

下一篇: 將Java學習更透徹的幾點小建議

分享到: 更多
彩仙阁计划快彩版登录 包赢pk10精准计划群 球探比分网 2018最新捕鱼游戏大全 非凡炸金花最新版本 手机牛牛 大小单双稳赚投注技巧 四川时时平台 北京pk10代玩骗局 买福彩3d稳赚不赔的绝密方法 福彩3d稳赚不赔的技巧 特马彩图 6码2期倍投计划公式 抢庄牛牛技巧规律 北京pk10冠军选号技巧 老时时三星四码遗漏