熱乎的面經,昨天面的美團,雖然面完了HR面,但是感覺希望不大,希望能走運拿到offer吧,三面技術面面經如下:

一面:
中間省略掉大概幾個問題,因為我不記得了,下面記得的基本都是我沒怎么答好的,,,
1.了解SOA,微服務嗎?
2.分布式系統如何負載均衡?如何確定訪問的資源在哪個服務器上?
一.輪詢,二.隨機,三.最小回應時間,四. 最小并發數,五.哈希,
3.設計一個分布式負載均衡緩沖系統,如何快速定位到是那個服務器(使用key分段、一致性hash)
4.如何保證緩沖區和資料庫之間的強一致性(使用加鎖)
5.HashMap高并發情況下會出現什么問題,(擴容問題)
6.說一說在瀏覽器中輸入一個url后,直到瀏覽器顯示頁面的程序中發生了什么(我主要說了DNS,然后他有接著問了DNS的細節,然后就是ARP路由,然后服務器處理,回傳,瀏覽器呈現,獲取html中的依萊澩)
7.字串中句子的反轉(比如ABC DEF,輸出DEF ABC)(很簡單,可以先反轉整個字串,然后反轉單詞,或者先將句子切分為單詞,然后反轉);
8.給任意二叉樹的所有結點加next指標(這個有原題,也可以參考按層列印二叉樹),
9.用過反向代理嗎?
二面:
1.行程間共享記憶體的方式有哪些?(8種)
2.linux下如何查看網路埠狀態(netstat),如何查看記憶體使用情況(top);
3.ConcurrentHashMap如何擴容?
4.知道java的例外嗎?
5.運行時例外如果不處理會怎么樣?應該怎么處理運行時例外?
6.寫代碼:給你5000萬個int,求出前1000個最大的數,有2G記憶體,(我剛開始以為5000萬個int很多,還把G和byte的換算忘了,后來面試官指導才想起來,我的方法是維護一個1000的小根堆,然后遍歷陣列,總體下來時間復雜度是O(nlg1000))
7.給你n個不重復的整數,隨機找出m個不重復的整數,要求時間和空間復雜度都是O(m),(方法很簡單,就是每次把取出來的數放到后面,只在前面的陣列隨機訪問就可以了,時間復雜度是O(m),空間復雜度是O(1),不過我剛開始沒有想到把選出來的放后面去,,,),
8.對于SQL慢查詢的優化?(主要是從查詢陳述句和資料庫表設計兩個方面來考慮,查詢陳述句方面可以增加索引,增加查詢篩選的限制條件;資料庫表設計的時候可以拆分表,設計得更細粒度,但是后來才發現面試官想要的就是查詢大量資料的慢查詢問題的優化,,,)
9.用過哪些容器?(tomcat)對比過Tomcat與其他服務器的區別嗎?比如nginx?
10.用過動態代理嗎?以后會經常用到的
三面:
1.自我介紹,說說你專案中的資料流向(畫結構框圖)
2.看過什么書?
3.說說深入理解JVM中印象最深刻的章節(我說了JVM記憶體模型,垃圾回收和類加載);
補充:還問了堆和堆疊中存的是什么?static修飾的遍歷存在哪里?(方法區)
4.說說《Effective Java》中你印象最深的三條和你的理解
5.你覺得你哪一塊只是最熟悉(我說了Java的基本資料結構)
6.那你說說HashMap的內部實作;
7.HashMap是執行緒安全的嗎?(不是,ConcurrentHashMap是)
8.那ConcurrentHashMap內部是如何實作的?每個segment是個什么資料結構?(HashTable)
9.你的專案中用到哪些技術?(Spring)
10.說說你用了它的什么?(Spring IOC用的最多)
11.Spring的優點?Spring AOP的原理?Spring如何實作解耦合?
12.對鏈表了解嗎?(我說是List嗎)是,(了解ArrayList和LinkedList),那你說說他們的區別?
13.會做鏈表兩個結點的交換嗎?(鏈表反轉嗎?)是的,你寫代碼實作把,
14.再寫一個,給你一個鏈表和一個整數k(k大于等于0,小于等于鏈表長度,鏈表長度未知),按k步長反轉鏈表(比如1->2->3->4->5->6->7,當k=3的時候結果是3->2->1->6->5->4->7)
15.說說mybatis配置了xml過后是如何完成資料庫操作的?
總結
-
三年以上java開發經驗或五年以上互聯網開發背景
-
熟練使用springmvc框架
-
掌握面向物件設計開發,熟悉常見設計模式
-
熟練使用mysql進行應用開發,熟悉資料庫原理及常用性能優化技術
-
熟悉分布式,快取,訊息搜索等機制,有分布式系統開發經驗,集群架構設計和使用者優先
-
有責任心,有想法,熱愛技術,喜歡鉆研
-
有較強的邏輯思維能力,善于分析,歸納,快速定位并解決問題
很多小問題都記不清了,這是我昨天下午回來就記錄下來的,感覺自己也盡力了,
最后很幸運的拿到offer了,祝各位還在找作業的朋友都能找到自己滿意的作業,加油,好運早晚會來的,
我特意整理了一下,有很多問題不是靠幾句話能講清楚,我這里整除了一些檔案,很多問題其實答案很簡單,但是背后的思考和邏輯不簡單,要做到知其然還要知其所以然,如果需要Java工程化、高性能及分布式、高性能、深入淺出,性能調優、Spring,MyBatis,Netty原始碼分析的朋友可以:
————直接點擊這里,回復暗號:CS 即可直接獲取!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/186625.html
標籤:AI
上一篇:做網站程序中需要使用哪些建站技術
