java研發面經分享:滴滴、美團、網易、58趕集等
在分享這篇文章之前呢,我先分享下我總結的一些乾貨。 今年年初我花了一個月整理了一份最適合2018年學習的java乾貨,包括基礎+原始碼+資料+視訊,都是免費的,在這裡相信有許多 想要學習Java的朋友,可以加群828545509 今年秋招我的面試大致結束了,差不多把提供北京java崗位的網際網路公司大都投一遍,也獲得了幾個面試機會,以後可能不常上牛客網了,在這兒把面經都和大夥兒分享一下吧。先感謝下牛客網和眾多牛友們,刷了大概有1千多題,媽媽再也不用擔心我過不了線上筆試了~ 1、滴滴 先吐槽下滴滴面試安排,如果你通過了一面,那麼就優先安排後面的面試,所以導致還沒一面的人就得一直苦等。那會兒我是下午一點去的,大概到了快4點才進行一面,後面就嗖嗖嗖地過關斬將到了hr面,也算是運氣不錯吧。 交叉1面 垃圾回收演算法 (程式碼)01矩陣,相鄰的1是一個島嶼,找出所有島嶼數(遞迴解決) 有關注過開源社群嗎,都看過哪些原始碼 AtomicInteger實現原理(CAS自旋) synchronized和reentrantLock區別 介紹spring的IOC/">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聯絡方式,京東的面試就在此止步了。 還有幾家公司的面試,要麼不大合適,要麼就是跪了,就不細說了。希望大夥兒都能找到滿意的工作,特別是到了校招後期,心態可能會變化比較大,可以來場說走就走的短途旅行緩解下壓力,不要過於苛求自己,祝一切順利!