8月最新的美團技術四面已拿offer:JVM、多線程、算法、設計模式


美團我是在拉勾網上投的簡歷,以前也投過一次,簡歷都沒經過刪選.前端

後來讓一位大佬幫我改了一下簡歷,從新投另外一個部門,得到了面試機會.java

話很少說,看核心重點問題吧!!!!mysql

美團技術一面20分鐘

一、自我介紹jquery

說了不少遍了,很流暢撿重點介紹完。git

二、問我數據結構算法好很差web

挺好的(其實心仍是有點虛,不過最近刷了不少題也只能壯着膽子充胖子了)面試

三、找到單鏈表的三等分點,若是單鏈表是有環的呢算法

用快慢指針,一個走一步,一個走三步。若是有環,先判斷環在哪,找最後一個節點,而後用以前的無環的作法sql

四、講一下項目的架構數據庫

我重點講了MVC

五、說一下你熟悉的設計模式

我重點講了單例、工廠方法、代理

五、有沒有配置過服務器啥啥啥

這個我真不知道,都沒聽過呢,只能誠實說沒有,畢竟都無法扯。

一面挺匆忙的,我估計面試官剛開完會還沒吃飯呢。他說讓我等,可能再找一個同事面我,可

能就直接告訴我結果了。

從一面面試官的聲音和口吻,我判斷他必定是個部門老大,問的設計偏多,後面hr告訴我他就

是我要去的部門的老大。哈哈。

美團技術二面60分鐘,詳細問答

面完一面正準備出去打羽毛球,北京的電話又來了。(註定這週五參加不了球隊活動了!)

二面:跟一面比起來,二面面試官的聲音聽起來就像是搞技術開發的,果不其然,一個小時的

純技術電話面試!面的特別全面!

一、Spring:有沒有用過Spring,Spring IOC、AOP機制與實現,Spring MVC

其實我挺不想被問到Spring的細節的,框架這些我都沒有複習不太記得了。因此我對面試官說

Spring裏面的一些比較重要的機制我理解的還不錯,而後我用一個實際的例子把我對IOC、

AOP理解講了一下,他聽了說對,理解的不錯(可貴遇到一個邊面試邊能給反饋的面試官,好開心)

Spring MVC其實我用過,我就對面試官講了個人項目中用到的Servlet,jsp和javabean實現

的MVC,以及MVC各個模塊職責以及每一個模塊是怎麼聯繫到一塊兒的,最後我補充了一句我想

SpringMVC的思想其實跟這個是同樣的(他說對的,嘿嘿有反饋真好)

二、多線程:怎麼實現線程安全,各個實現方法有什麼區別,volatile關鍵字的使用,可重入鎖

的理解,Synchronized是否是可重入鎖

這裏我就主要講了Synchronized關鍵字,還有併發包下面的一些鎖,以及各自的優缺點和區別。

volatile關鍵字我主要從可見性、原子性和禁止JVM指令重排序三個方面講的,再講了一下我

在多線程的單例模式double-check中用到volatile關鍵字禁止JVM指令重排優化。

三、集合: HashMap底層實現,怎麼實現HashMap線程安全

我講了一下HashMap底層是數組加單鏈表實現,Node內部類,add的過程,Hash衝突解決

辦法,擴容,三種集合視圖。HashMap線程安全的實現方式主要講了HashTable、

ConcurrentHashMap以及Collections中的靜態方法SynchronizedMap能夠對HashMap進

行封裝。

以及這三種方式的區別,效率表現。

四、JVM內存管理,GC算法,HotSpot裏面的垃圾回收器、類加載

JVM內存主要分爲五個區,哪些是線程共享的,哪些是線程獨享的,每一個區存放什麼。

GC方面:怎麼判斷哪些對象須要被GC,GC的方法,Minor GC與Full GC。HotSpot GC算法

以及7種垃圾回收期,主要講了CMS和G1收集器。

類加載:類加載的過程,Bootstrap classloader-ExtClassloader-AppClassloader,父類委

託機制。

五、進程和線程的區別

從調度、併發性、擁有的資源和系統開銷四個方面回答的。

六、HTTP有沒有狀態,我說無狀態,怎麼解決HTTP無狀態 怎麼解決HTTP無狀態其實就是怎

麼進行會話跟蹤,有四種方法:URL重寫、隱藏表單域、Cookie、Session。

七、Java IO,NIO,Java中有沒有實現異步IO

Java IO實現的是同步阻塞,它是怎麼實現同步阻塞的。我拿了read()方法舉例來說的。

NIO實現的是同步非阻塞,我詳細講了一下Selector中的select()方法輪詢說明它是如何實現多路複用IO的。

而後對比了一下他們的效率。面試官可能看我對這一塊比較瞭解,又繼續問我Java中有沒有實現異步IO,我感受好像沒有,但面試官說有,讓我想一想,其實這裏我並不清楚啦,因此我就對面試官講了一下我對Unix中異步IO模型的理解,而後說至於Java裏面有沒有我真的不太清楚。(他竟然笑了!說你理解是對的,Java裏面有沒有不重要!哈哈)

八、前端會不會,Ajax是什麼,Ajax實現原理

前端我只是會用一些js而已,用過jquery框架,問我Ajax全稱是啥,我猜是異步的js和xml。Ajax實現原理其實我也不懂,我就只簡單講了一下它經過XMLHttpRequest對象進行異步查詢,Ajax引擎在客戶端運行,減小了服務器工做量。

九、讓我設計一個線程池

由於我簡歷中有寫到我對多線程、併發這一塊理解比較好。因此他老問這方面的題。這個問題由於我以前看過ThreadPoolExecutor的源代碼,因此我就仿照那個類的設計思路來想的,詳細講了一下核心池、建立線程能夠用工廠方法模式來進行設計、線程池狀態、阻塞隊列、拒絕策略這幾個方面。設計的還算比較周全。

十、講幾個設計模式,哪些地方用到了,爲何要用

單例模式,jdk中的getRuntime();

工廠方法模式:ThreadPoolExcutor用到ThreadFactory;

觀察者模式:java.util包下面的Observable和Observer。

最後主要講了一下工廠方法模式的使用場景。

十一、Mysql優化、索引的實現

我從數據庫設計優化和查詢優化兩方面講的。

索引B+樹實現,InnoDB和MyISAM主鍵索引的實現區別,一個彙集一個非彙集。

十二、事務的隔離級別

四種隔離級別,可能會出現哪些異常,mysql中默認級別。

1三、有沒有用過Hibernate、mybatis、git

這個簡單講一下就好,分別是幹什麼的

1四、Linux

我說這個本科學過,可是好久沒用,命令忘光了。他說沒事,考你幾個簡單的:cd、ls、

dir(真的是簡單的)

1五、算法題

從10萬個數中找最小的10個,時間複雜度分析(最大堆,考慮內存)

從一個有正有負數組中找連續子數組的最大和,時間複雜度分析(動態規劃)

滿二叉樹第i層有多少個節點,n層的滿二叉樹共有多少個節點

終於到我提問環節了

一、大家是什麼部門(他說是核心部門,大數據研發)

二、我對高併發和負載均衡挺有興趣的,可是我平時在學校也沒有這個環境讓我在這方面有所體驗,那你建議我目前能夠怎麼學呢(他說這確實是不太好學,只能看些理論和別人的博客,之後工做中才能慢慢學)

三、中間件具體是作什麼的,是解決高併發和負載均衡嗎(他說差很少是的,而後他說咱們這個部門不是中間件,是大數據部門啊,我說恩我知道)

最後沒啥問題了,他讓我保持電話暢通。

這一面面完,口乾舌燥,我一度懷疑他可能不知道我是在應聘實習生的崗位。有太多要總結的了,放在總結的地方一塊兒講吧。

美團技術三面25分鐘

面試官說是他是另一個部門的,須要進行交叉面試。

一、MySql優化

二、說下項目作了些什麼,架構之類的

三、在collabedit上在線寫代碼,題目很簡單是編程之美上的原題,一個有序的整數數組,輸出兩個數,使它們的和爲某個給定的值。以前作過很快寫好,而後給他講思路。他繼續問若是數組無序怎麼辦,先排序。

四、兩個文件,每一個文件中都有若干個url,找出兩個文件中相同的url(用HashMap)

這一面挺簡單的,只是增長以前面試沒有過的在線寫代碼環節,collabedit後來我才瞭解,像facebook一些互聯網公司遠程面試都會用這個在線編輯器寫代碼,就是文本文檔寫,沒有提示,不能編譯運行,跟白板寫同樣。平時練練手就好。

美團技術HR四面30分鐘

三面面試官說他那就是終面,說我過了等hr聯繫我。萬萬沒想到半小時後的hr面竟然也是技術。

一、自我介紹,都四面了還自我介紹?!我還覺得是單純的hr面,因此介紹的都是個人性格和生活方面的,結果並非。

二、問項目,問的特別特別細,技術細節,還有遇到什麼問題,怎麼解決的,作項目有沒有人帶,怎麼跟別人溝通的。

三、數據庫優化,若是數據庫一個表特別大怎麼辦 數據庫優化我就講了以前講過不少遍的點,他問一個表特別大怎麼辦:大表分小表,怎麼實現:使用分區表

四、肯定入職時間 這一面確實讓我感到有壓迫感,項目是本科作的,挺久了,一些技術細節上

也沒太總結,因此問細了我只能連想帶編。

上面的這些面試題都整理成了PDF文檔,但願能幫助到你面試前的複習並找到一個好的工做,相對來講也節省了你在網上搜索資料的時間來學習!!!

Java核心面試寶典

  1. JVM
  2. JAVA集合
  3. JAVA多線程併發
  4. JAVA基礎
  5. Spring原理
  6. 微服務
  7. Hetty與PC
  8. 網絡
  9. 日誌
  10. Zookeeper
  11. Kafks
  12. Rabbi tMQ
  13. Hbase
  14. MongoDB
  15. Cassandra
  16. 設計模式
  17. 負載均衡
  18. 數據庫
  19. 一致性算法
  20. JAVA算法
  21. 數據結構
  22. 加密算法
  23. 分佈式緩存
  24. Hadoop
  25. Spark
  26. Storm
  27. YARIN
  28. 機器學習
  29. 雲計算

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

 

求來的大廠面試場景(爲了學習提高能夠沒臉沒皮,啊哈哈哈)

我針對這些大廠的面經場景也找了不少題刷,對自身的提高也是很是大(還特地要了份面試答案)

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

美團部分面經

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

好將來面試場景

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

 

分享一些我我的的學習文檔,有須要的朋友自行選擇獲取:

一、面試文檔專題整理

既然是要面試,那麼就少不了刷題,實際上春節回家後,哪兒也去不了,我本身是刷了很多面試題的,因此在面試過程當中纔可以作到心中有數,基本上會清楚面試過程當中會問到哪些知識點,高頻題又有哪些,因此刷題是面試前期準備過程當中很是重要的一點。

根據自身面試經歷整理以及不斷收集的(珍藏版)

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

相關的電子書、底層源碼

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

阿里巴巴必備學習知識點

四面阿里巴巴如願拿到offer定級P7,爲此我籌備了半年

 

最後

不少人感嘆「學而無用」,實際上之因此產生無用論,是由於本身想要的與本身所學的匹配不上,這也就意味着本身學得遠遠不夠。不管是學習仍是工做,都應該有主動性,因此若是擁有大廠夢,那麼就要本身努力去實現它。

以上學習資料均免費放送,最後祝願各位身體健康,順利拿到心儀的offer!

關注公衆號,獲取以上面試寶典

相關文章
相關標籤/搜索