最新阿里Java面試題整理+進階資料分享,看完直接收藏

前言:

金三已經過去,現在是銀四,據我瞭解,好多人都會在三月份選擇跳槽,為什麼大家都會在三月份選擇離職跳槽呢?那當然是新年剛剛過去,大家也許是覺得老公司待遇不怎麼樣?薪資不夠高,想換個新環境等等原因,所以,三月份就變成了招聘與跳槽的旺季,那為什麼四月份就比不上三月份呢?相信不用我說大家也知道,畢竟三月份大家都去湊熱鬧,都去招聘與面試了,四月份還剩下來的招聘與面試的人就寥寥無幾了,而且四月份還沒找到工作的可以用老油條來這麼說也不為過,且四月份公司還招人的,那幾本找的都是些大牛了。

那為什麼我要說銀四比金三火呢?因為,大多數人多覺得,四月份的工作難找,且薪資也不會很高,環境還不知道好不好,而且要求的還很多,面試也難面等等說法,但據我瞭解到的,四月份的就業情況要比三月份的好,待遇,薪資,環境等,都要比三月份的好。據我從一個好友James哪裡瞭解到的,就在前幾天,他帶的兩個學員,成功面試上了阿里,且還幫我整理哪兩個學員的面試總結,在此,我分享給大家,希望大家在四月份要找工作的朋友,我的這篇文章能給你有所幫助。

面試總結

那來兩位學員我分別用A和B來代替

A學員

第一輪:電話初面

第二輪:技術面談【技術職位儘量避免多談管理上的工作】

第三輪:高管複試

第四輪:HR最後確認

一面:首先確認對阿里的意向度(如果異地更會考慮對工作地點(杭州)的意向度!阿里很看重這個);其次面試官一般會針對您所做過的項目來做具體技術的交流,會比較關注個人對項目細節是不是掌握到位,主要考察java的技術基礎和原理,比如Spring框架以及數據庫和JVM三個方面,也會交流到分佈式、線程池的實現等等,重點考察是不是有比較鑽研技術和技術上的亮點【不一定每個面都很厲害但一定要有亮點】;

二面:技術面,根據項目深入的瞭解技術實力,瞭解您的知識面,瞭解您的問題解決能力以及技術靈活運用能力,也通過這一過程考察團隊合作能力、學習主動性和創新性,可以挑選2-3個做過的有典型性的項目做一個仔細 技術回顧和自己獨到的理解【這會成為您的加分項】;

三面:他們最後的高管複試會涉及到相關的技術問題,大部分是對你的整體價值觀做宏觀的把控(比如上進心,責任心,心態,工作激情等)

HR確認:基本就是從大方向瞭解一下您的心態、抗壓能力,工作中的角色、未來大致的規劃以及對阿里的意向度

【技術基礎以及的問題多看看書準備下就行了,不懂的直接說不懂沒關係的;在項目細節上多把關一下,根據項目有針對性的談自己的技術亮點,能表達清楚,可以引導面試官來問你比較擅長的技術問題,個人就可以盡情發揮】

阿里比較喜歡的人才特點:對技術有熱情,強硬的技術基礎實力;主動,善於團隊協作,善於總結思考;

阿里面試問的問題會比較底層

Java內存結構,spring的aop的實現方法,java數據庫問題定位和性能調優;關於Java異常的續承層次結構,講述異常的續承關係;java中重載和重寫有什麼區別,分別用什麼關鍵字;關於分佈式消息隊列,分佈式緩存;關於hashmap源碼實現, jdk關於設計模式,uml,jvm 內存回收機制問題java線程如何啟動?java中加鎖的方式有哪些,怎麼個寫法?對樂觀鎖和悲觀鎖的理解;ORACLE中的SQL如何進行優化,都有哪些方式?事務有哪些特性,在ORACLE中隔離有哪些級別?介紹一下自己最近做的一個典型的項目;在項目中遇到了哪些問題,自己是如何解決的 ;目前系統支撐的用戶量是多少,假如用戶量提升10倍,系統會出現什麼樣的問題,如何重新設計系統【這裡主要是想了解您的問題預見能力以及問題解決能力,考查思路】使用memcached是一個什麼樣的原理如何存放數據到memcached集群中,介紹一下這個過程。跟進的問題,講一下一致性哈希算法的實現原理。JVM中堆是如何管理的,JVM的內存回收機制,介紹一下分佈式事務實現方式熱點賬戶問題(項目中有就會問)

第一輪技術面試(電面)涉及Java基礎點(可參考):

sessionjava鎖gc原理hashmaplistlink arraylist 區別aop 原理多線程kafka 原理和容錯spark hadoop 原理redis 同步機制classLoader 機制Http 協議cookie的限制HashMap key的要求 , hashcode一致兩個對象是否相等JVM的原理涉及面較廣,包括談到項目上遇到的問題,以此深入探討。

XX:

介紹自己的工作職責、技術or管理怎麼分配的介紹項目,涉及的技術把整個流程說下。然後他感興趣就會深入問然後就是聊一些jvm、nosql之類的假如服務器反應很慢,你應該怎麼排查問題怎麼跟蹤一個方法的用時,並且最小限度干涉業務程序

旁聽面試-java:

人選介紹目前目前技術管理側重;對阿里推薦對應崗位的理解度;系統設計是怎麼樣的;做的一些架構,數據源來自於哪裡並深入問;模塊邊界,緩存機制;選用技術選型時,A和B的區別;多線程如何用,有什麼好處,和進程的區別;多線程的過程;多線程同步的方法,X項目中如何去實現;分佈式架構在你目前項目中的體現;跨主機通信用過什麼,接口等;大數據存儲;

結尾:

你自己覺得你擅長什麼,以後想走的路線,技術還是管理;

Java面試題分享:

JMS的兩種模式是那些;富客戶端怎麼更新;自己設計類似ESB這樣的企業數據總線應該有哪些功能;系統架構設計;集群中怎麼控制session;怎麼樣知道java存中是哪一些模塊消耗內存比較多;應用服務器的參數調整。

B學員

基礎篇

面試題

junit用法,before,beforeClass,after, afterClass的執行順序分佈式鎖nginx的請求轉發算法,如何配置根據權重轉發用hashmap實現redis有什麼問題(死鎖,死循環,可用ConcurrentHashmap)線程的狀態線程的阻塞的方式sleep和wait的區別hashmap的底層實現一萬個人搶100個紅包,如何實現(不用隊列),如何保證2個人不能搶到同一個紅包,可用分佈式鎖java內存模型,垃圾回收機制,不可達算法兩個Integer的引用對象傳給一個swap方法在方法內部交換引用,返回後,兩個引用的值是否會發現變化aop的底層實現,動態代理是如何動態,假如有100個對象,如何動態的為這100個對象代理是否用過maven install。 maven test。git(make install是安裝本地jar包)tomcat的各種配置,如何配置docBasespring的bean配置的幾種方式web.xml的配置spring的監聽器。zookeeper的實現機制,有緩存,如何存儲註冊服務的IO會阻塞嗎?readLine是不是阻塞的用過spring的線程池還是java的線程池?

能回答上百分之七十,基礎的廣度就算OK了。如果達不到,那麼缺什麼就趕緊補什麼。廣度達到了,還需要對個別熱點問題有深度。每個人的精力都有限,可以適當挑選兩個熱點問題進行深入挖掘。比如HashMap,要不僅僅能夠說上來源碼是什麼去實現的,還要了解JDK1.7版本到1.8版本都做了哪些改進,為什麼這麼改進,ConcurrentHashMap怎麼實現的,針對併發場景都做了哪些優化措施,JDK1.7和1.8的實現有什麼差異。瞭解這些可能需要花費很大精力。但是,面試的時候一但問到了這個你非常精通的知識點,就基本進入你的主場了。這個能起到一錘定音的作用,給面試官留下極強的印象,甚至直接決定了此次面試的成敗。因此,至少準備那麼一兩個非常精通的知識點,一定不要多,但要比面試官和其他求職者都要精通。這個賭的就是運氣,只要在一個問題上能給面試官上一課,就能讓對方產生“你很厲害”的錯覺。

所有基礎知識都要做好筆記,面試前多回顧下,在配合刷下題,問題就不大了。

項目篇

要回答好項目問題,核心就是要提前做好充足的準備。首先,仔細回顧自己做過的項目。然後挑選最有價值的部分,寫一篇關於這個項目的總結性文檔,要講清楚這個項目的架構,設計思路。其次是努力回想當時遇到的難點,踩過的坑,以及自己怎麼思考和應對的,還有對項目後續改進的思考。這個非常重要,一定寫下來。文檔寫出來後,還要反覆提煉和補充。面試的時候就以此文檔為綱領,方能做到侃侃而談,從容應對。

情商篇

面試的時候,可能會穿插一些考察性格的問題。比如,問你為什麼離職/想換工作,對技術和業務怎麼看,對我們公司有什麼瞭解,對我們的業務有什麼瞭解,你有什麼想問我的,你覺得自己有什麼優點/缺點。做技術的同學往往在情商方面有所欠缺,如果沒有準備的話,面試時一不小心說錯一句話就可能導致前功盡棄。尤其在阿里,HR是有一票否決權的。 那麼,應對此類問題的第一點就是提前預防,可以提前拿張紙,猜想對方可能會問的問題,把標準答案寫出來,反覆推敲,然後背下來即可。比如,“你覺得自己有什麼優點”這個問題,我當時的標準答案就是,“我覺得人最難了解的就是自己,所以我想借用我前領導對我的評價,XXX是個......的人”。我的這個標準答案是基於 “第三方的評價更有可信度” 這個原理來設計的。第二點,回答問題的時候表現的謙虛一點即可,而且千萬不要有負能量。比如“為什麼離職/想換工作”,這個問題,不要去吐槽公司或者同事,或者表達情緒上的不滿。要儘量展現出自己好學上進的一面,這一點很重要。面試官會把對你的印象記錄在案的,包括你的優點和缺點。因此即便技術達不到要求,也儘量展現性格上的優點。

阿里面試流程

面試一般是四到五面,以電話面試為主。最後一輪面試時HR面試,所以只要挺過前面的技術面試一般就OK了。第一輪是考察基礎,第二輪開始考察項目,溝通表達能力。第三四輪會可能有編程,要求現場寫代碼,或者線下完成一個指定的項目。面試官的級別在p6-p9之間,一般隨著面試流程的推進而升高。技術面試通過後就是HR面了,這一輪主要考察價值觀。所有面試結束後,就是一個漫長的等待了,期間會有體檢,背景調查,然後發offer。這個流程會有一個月的時間,比較久。需要注意的是,面試過程中一定要保證誠實,不能有半點弄虛作假。因為一但背景調查的時候發現說謊了,不但offer會取消,還會記錄到人才庫裡。再有一點,約好了的面試不能隨意爽約,這個也會永久記錄。你的每次面試的過程都會詳細的記錄在人才庫裡的,因此儘量不要留下汙點,以免影響以後的面試。

以上這兩位學員,是James帶的兩位學員,那兩位學員面試過了,然後寫出來的總結,我再此分享給大家。

那為什麼這兩個學員能在這四月初就可以面試上阿里呢?有人就說:“可能他們是老油條,經驗豐富當然能面試上了,” 你們是不是想不到,據我問James的,他們兩個都是2-3年的工作經驗的,基礎中等。

總結:

通過以上的兩位朋友總結出來的阿里面試總結,你們自己在看文章時,你自己想一下看,你能把那些問題都能回答上來麼?你對自己的技術感到又想到進一步的提升麼?在四月,面試黃金月的最後一月,你能把握住機會麼?在你約到技術上的困難以及瓶疾的時候,你能夠解決麼?不能解決的,證明你在開發的道路上,你還需要繼續努力學習。

最後:在後臺回覆“阿里面試”即可獲得整理好的面試題以及答案。