阿里P7面試經歷JAVA總結,技術面,HR面(附整理好的答案分享)

為記錄阿里的電面經歷,特與大家分享,崗位是JAVA研發工程師。

答案文末分享!!!!!答案文末分享!!!!!答案文末分享!!!!!

一面主要問題如下:

首先自我介紹數據結構算法的基本問題,如排序算法,二叉樹遍歷,後序遍歷非遞歸,圖的最短路徑問題對一個數組進行絕對值排序的算法java中hashmap的底層實現java中垃圾回收機制GC原理等介紹自己的項目,數據庫中用到的數據結構數據模型,死鎖的概念(問的應該是數據庫的死鎖),如何避免死鎖?樂觀鎖和悲觀鎖?一致性hash算法項目中業務對象的關聯關係/關聯方式,談談左外連接及如何實現多對多關係模型spring的IOC和AOPsping如何實現(保證)事務一致性完整性,spring中事務傳播機制類型談談WEB的架構(應該指的是j2ee開發架構模型)、項目中的用戶場景使用場景對分佈式架構的瞭解,如分佈式存儲 分佈式緩存 分佈式計算談談對阿里的哪些開源項目有所瞭解?對淘寶技術是否有了解?對其杭州信息平臺事業部其主要業務是否瞭解(其主要是java方面的開發,另可以重點關注看看工作流引擎)

二面主要問題如下:

首先仍然是先自我介紹有過競賽經歷?獎項?專業排名?平時都看些什麼書籍?是否參加了學校社團活動?哪個部門?主要工作?時間安排?對哪些技術最熟悉最擅長?我說的是java WEB框架那些,然後就開始問java了接口和抽象類的區別 實現有哪些不同?序列化如何實現?用代碼描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()IO框架 集合框架的描述。如何判斷文件是否存在?如何讀取一個目錄下面的所有文件和子目錄?代碼描述。廣度優先遍歷目錄下面的所有子目錄和文件?代碼實現?List和Map的不同?HashMap的實現?如何解決散列衝突?多線程機制?線程休眠10秒?sleep()與wait()的區別。緩衝流buffer的用途?原理?linux下如何查看CPU負載和IO端口的使用情況?如何創建目錄?如何搜索一個指定的字符?考察數據庫的sql操作,給定了一個具體的業務表,如何對不同類型的數據進行統計。事務的概念?髒讀?如何避免?如何在代碼中實現?sql代碼中如何使用如何定義一個事務?應該是如何定義一個事務的隔離級別?項目中遇到的問題?解決方式?SSI框架?spring如何定義一個bean?代碼描述。Bean的生命週期?Bean的scope?對淘寶技術架構的瞭解?從哪裡獲取到的?自己今後的職業規劃?技術發展方向?最後,對來杭州和阿里工作的意向?然後詢問我自己有啥想問的?談了下 信息平臺事業部的主要業務?工作流和ERP?

總體上來看,還是比較注重基礎的 尤其是java的多線程和併發安全性及數據庫相關,另外對有關開源框架的具體底層實現需要多閱讀源碼並進行總結。

下面是網上參考到的阿里java面試題目,同樣作為借鑑。

hashmap,hashtable區別。是否瞭解過hashmap的源碼?jvm相關,主要是內存分配的過程,何時出發GC,用什麼工具或者命令來進行監控?類加載,類隔離機制。spring的ioc,aop,事物,然後順便提到了數據庫的事物,兩階段提交,數據庫鎖的級別,MySQL數據庫鎖的特殊之處(頁級鎖)java線程池裡面的arrayblockingqueue,linkedblockingqueue的用途和區別。設計模式相關,主要講解用途如何保證數據庫集群中ID的唯一性,假設每秒鐘併發20萬次。設計十萬併發級別的網站後臺,如何計算使用的ecs數目(雲服務器(Elastic Compute Service, ECS 如阿里ECS)是一種處理能力可彈性伸縮的計算服務器,基於BGP最優路由算法構架多線網絡,雲服務器可以幫助構建更加安全穩定的應用)。memcached和redis的異同和用途。nosql數據庫相關,主要講了mongodb10G的整數中,取出最大的一個(不光是使用高效的排序算法,還需要考慮內存大小)synchronized,volatile,可重入鎖的用途和優缺點。java nio相關核心的api基本瞭解和應用一致性hash在一個大系統中存在哪些單點失效的問題hadoop優化相關

一面,主要注重基礎,問得很深很廣,壓力面試。

hashmap、concurrenthashmap底層實現和區別spring框架的原理如何寫一個orm框架hibernate一級緩存和二級緩存,hibernate其他緩存hibernate事務傳播行為種類springmvc原理restful的好處restful有幾種請求,表單如何提交put請求web中安全性問題的考慮,如何防止web系統整體架構hibernate如何實現聲明式事務java併發包volatile平常都看哪些書spring底層數據結構如何進行反射,如何提高反射的性能如何實現java的代理,為什麼需要實現接口TCP協議三次握手springmvc用過哪些註解springAOP可以使用哪些代理,有什麼區別為什麼要分三層mybatis與hibernate有什麼區別,為什麼不用hibernate直接寫sql語句?

這面沒有準備好,廣度和深度壓力很大,建議大家多看看三大框架源碼、原理,併發包。

二面注重於項目

什麼是restful web service?併發集合包?項目中使用了哪些數據結構?TCP中斷連接四次揮手?MD5加鹽https支付寶接口開發知道哪些鎖,有什麼區別?依舊JDK源碼項目遇到什麼問題,怎麼解決?JDK1.8有什麼新特性?

也許是覺得一面已經問了很多了,這面又答得比較不錯,20分鐘就結束了,30分鐘出了結果。

三面聊人生

leader人very nice,給了一些建議,可能是覺得技術差不多,這面基本沒怎麼問技術,主要是職業發展、IBM的實習內容之類,我想大家可能也都有自己的想法,18分鐘。

hr面聊成長經歷:聊了一下對B2B的認識和自己的技術成長曆程。

進程和線程的區別什麼叫線程安全?舉例說明OSI七層模型,包括TCP,IP的一些基本知識數據庫的鎖DFS,BFS算法還有一些諸如collection framework的Java基礎http中,get post的區別

其他的面試,感覺問的很有代表性:

第一面(只記得這麼多了)

筆試題第四題實現又口述了下有個每秒鐘5k個請求,查詢手機號所屬地的筆試題(記得不完整,沒列出),如何設計算法?請求再多,比如5w,如何設計整個系統?比較熟悉什麼技術?我說jvm和oracle,就讓我畫jvm的體系結構,畫了之後說各個部分的職責,並扯到運行期優化。

第二面(沒有技術細節,都是泛泛的,但是我回答的比較保守,只覺得能滔滔不絕的說上半小時才敢說看過或瞭解)

是否願意去杭州熟悉各種技術框架麼?源碼讀過麼?數據庫瞭解什麼?mysql瞭解麼前臺技術,看我用的ExtJS,就問是否瞭解JQuery進現在的公司,覺得對技術是否有提升?

第三面,此面沒有技術問題

第四面HR(感覺這面問題回答的有點扯,畢竟是這麼幾年來首次面HR,之前面過2、3個公司,要麼很早就掛了,要麼感覺流程太長,自己不願意面下去)

願意去杭州發展麼?我說要考慮,hr就問主要考慮什麼問題從技術角度來說,你覺得你跟你同學比怎麼樣你的父母怎麼看待你的jvm性能調優都做了什麼高併發情況下,我們系統是如何支撐大量的請求的集群如何同步會話狀態負載均衡的原理數據庫事務屬性二叉樹的遍歷算法hashtable和hashmap的區別併發、同步的接口或方法string、stringbuilder、stringbuffer區別https處理的一個過程,對稱加密和非對稱加密線程的幾種狀態瞭解手機開發麼個人優勢與同事溝通的時候,如果遇到衝突瞭如何解決工作中覺得哪方面欠缺?有問題要問麼?期望薪水為什麼要離開現在的公司

那麼看到這裡的你肯定想問了,答案在哪?我把近一年經歷過的面試,和一些刷過的面試題都做成了PDF,PDF都是可以免費分享給大家的,只要私信(寶典)就可以獲取免費領取方式!

領取的朋友們記得一定要幫作者來個轉發+評論!謝謝大家!

轉發+評論後私信(寶典)就能免費獲取領取方式了!