1. 程式人生 > 其它 >如何成為一個更好的Java開發者?穩進大廠

如何成為一個更好的Java開發者?穩進大廠

如何成為一個更好的Java開發者?穩進大廠

頭條二面

二輪技術面,17:00~20:25,晚飯時間hr 小姐姐還特貼心的帶我體驗了一把傳說中的頭條餐廳,不超過半小時

  1. 聊專案,畫專案架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖
  2. 講專案中的難點、挑戰,你是如何解決的
  3. redis 中有幾種型別 & 各自底層怎麼實現的 & 專案中哪個地方用了什麼型別,怎麼使用的
  4. redis如何實現分散式鎖,zk如何實現分散式鎖,兩者的區別。如果service還沒執行完,分散式鎖在redis中已經過期了,怎麼解決這種問題
  5. synchronized底層實現,加在方法上和加在同步程式碼塊中編譯後的區別、類鎖、物件鎖
  6. 鎖升級的過程
  7. java執行時區域 及 各個區域的作用、對GC的瞭解、java記憶體模型 及 為什麼要這麼設計
  8. 對索引的理解,組合索引,索引的最佳實踐
  9. countDownLatch用過沒有,在專案中如何使用的,對aqs 的瞭解
  10. 寫生產者消費者問題,考慮高併發的情況,可以使用Java 類庫,白紙寫程式碼
  11. 如下圖所示
  1. 設計一個發號器,考慮叢集和高併發的情況,要求發號器生成的id是遞增趨勢,通過id可以區分出來是今天生成的id還是昨天生成的id,但是生成的id中不能直接帶有日期,要具有一定的混淆功能,白紙寫程式碼
  2. 一個二位陣列,每個元素都可以往上下左右四個方向走,尋找最長遞增路徑。如下圖所示,最長遞增路徑即紅色字型路徑。白紙寫程式碼。

美團四面

電話面試(40分鐘)+現場三輪技術面試(3.5小時)+hrbp面試(30分鐘)

  1. 資料庫和快取的一致性問題。先更新資料庫,再更新快取,若更新完資料庫了,還沒有更新快取,此時有請求過來了,訪問到了快取中的資料,怎麼辦?
  2. 聚簇索引/非聚簇索引,mysql索引底層實現,為什麼不用B-tree,為什麼不用hash,葉子結點存放的是資料還是指向資料的記憶體地址,使用索引需要注意的幾個地方
  3. mysql預設的事務隔離級別,mvcc,rr怎麼實現的,rc如何實現的
  4. mysql間隙鎖有沒有了解,死鎖有沒有了解,寫一段會造成死鎖的sql語句,死鎖發生瞭如何解決,mysql有沒有提供什麼機制去解決死鎖
  5. 談下對GC的瞭解,何為垃圾,有哪些GC演算法,有哪些垃圾回收器,cms和g1的區別,emm,還有一個直擊靈魂的問題,看過cms的原始碼嗎,笑cry
  6. 有沒有排查過線上oom的問題,如何排查的
  7. 有沒有使用過jvm自帶的工具,如何使用的
  8. 假設有下圖所示的一個full gc 的圖,縱向是記憶體使用情況,橫向是時間,你如何排查這個full gc的問題,怎麼去解決你說出來的這些問題。
  1. 說說對java中集合類的理解,專案中用過哪些,哪個地方用的,如何使用的
  2. 對CAS的理解,CAS帶來的問題,如何解決這些問題
  3. volatile底層、synchronized底層、鎖升級的過程、MESI
  4. ehcache支援哪些快取
  5. juc有研究沒有,講一講
  6. 聊專案,畫專案架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖
  7. 講專案中的難點、挑戰,如何解決的,專案這一塊會問的特別細
  8. 如何保證RocketMQ 訊息的順序性,如何解決重複消費問題
  9. 專案中如何保證介面的冪等操作
  10. 講一講對redis 的瞭解,專案中如何使用的,哪個地方使用的,為什麼要使用
  11. 哨兵機制、redis兩種備份方式的區別,專案中用的哪種,為什麼
  12. 講一講對分散式鎖的瞭解
  13. 專案中系統監控怎麼做的
  14. 如何理解Spring中的AOP 和 IOC,以及DI,讀過Spring原始碼沒有
  15. 讀過MyBatis原始碼沒有
  16. 說一個你瞭解最多的框架,說出你的理解
  17. 如何理解分散式事務,為什麼會出現這個問題,如何去解決,瞭解哪些分散式事務中介軟體
  18. 聊一聊對分庫分表的理解
  19. hystrix功能 & 在專案中怎麼使用的 & hystrix 怎麼檢測斷路器是否要開啟/關閉 & hystrix 實現原理,除hystrix之外的其他熔斷限流中介軟體有了解沒有,瞭解多少說多少
  20. dubbo有了解沒有
  21. 怎麼理解java 中和 mysql 中的樂觀鎖、悲觀鎖
  22. 一致性hash

京東

電話面試(30分鐘)+現場兩輪技術面試(1小時40分鐘),面完12:50,說讓我先回來,後續hr 電話和我聯絡,一週後一面的面試官問我還考慮京東嗎,對不起,已經不考慮了,希望以後有機會再合作

  1. 一個final修飾的屬性,定義的時候沒有初始化,在無參建構函式中初始化,可以嗎,為什麼
  2. 說說對java中集合類的理解,專案中用過哪些,哪個地方用的,如何使用的,為什麼不用其他的集合類
  3. hashMap,concurrentHashMap底層實現,
  4. list刪除是怎麼實現的,遍歷的時候可以刪除嗎,為什麼
  5. redis中有哪些資料結構,瞭解過其底層怎麼實現的嗎,和java中相似的資料結構的對比
  6. redis是單執行緒的還是多執行緒的,為什麼這麼快
  7. redis hash中某個key過大,變為String型別的大key,怎麼處理,使用中如何避免出現這種問題
  8. 設計模式在專案中哪個地方用到了,怎麼使用的,能不能畫一個你熟悉的設計模式的UML圖,手寫單例模式,手寫靜態內部類實現的單例模式
  9. 講一講mysql索引,實際工作中,哪些場景用了b+tree索引,哪些場景用了hash索引
  10. explain 可以看到哪些資訊,什麼資訊說明什麼,explain的結果列講一下
  11. Spring原始碼看過沒有,會多少講多少
  12. MyBatis原始碼看過沒有,會多少講多少
  13. cas,cas的缺點,如何解決
  14. aqs,countDownLatch如何實現
  15. 執行緒池如何實現,核心執行緒數和最大執行緒數設定成多少,為什麼這麼設定,專案中哪個地方使用了執行緒池,使用時需要注意什麼
  16. mysql事務隔離級別,幻讀,髒讀,專案中用什麼事務隔離級別,為什麼
  17. volatile底層原理、synchronized實現機制,
  18. 對XA、TCC的理解,瞭解哪些分散式事務框架,有什麼缺點
  19. feign 和 dubbo,瞭解多少說多少
  20. eureka 和 zookeeper,瞭解多少說多少
  21. hystrix 和 sentinel,瞭解多少說多少
  22. Spring cloud alibaba,瞭解多少說多少
  23. 對分庫分表、讀寫分離的瞭解,瞭解多少說多少
  24. 畫一下java 執行緒幾個狀態 及 狀態之間互相轉換的圖
  25. 聊專案,畫專案架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖,講資料庫設計 具體到部分表中有哪些欄位
  26. emm 我們部門體量比較大,可能需要加班,到凌晨兩三點的那種,也可能通宵,通宵是大促期間,你能接受嗎
  27. emm 也會加班到十點,這個不是大促期間,但也不是每天,非常態情況,你能接受嗎,你在哪裡住,過來要多久,有男朋友嗎
  28. 一起去吃午飯吧,我們這邊有員工餐廳,不了不了,我回家吃飯吧

下面是面試tmj 之外的公司中遇到的一些問題哈,tmj 中已經被問到的就不再重複寫了,只寫一下個別公司中我還記得的面試題(重點總結寫演算法

演算法題

  1. [1,1,2,2,3,4,4,5,5,5] 找出不重複的元素(黃包車)
  2. 反轉連結串列,要求時間複雜度O(N),空間複雜度O(1) (火幣)
  3. 非遞迴實現斐波那契數列 (愛奇藝)
  4. 這一週股市價格為[2,6,1,4,8],求哪一天買入哪一天賣出,可獲得最大收益,最大收益為多少 (愛奇藝)
  5. 按照箭頭方向查詢二叉樹 (金山雲)

表a b c之間用id關聯,求陰影部分的資料 (金山雲)

  1. 一個整形無序陣列,裡面三個數只和等於一個目標值,求這三個數 (小米)
  2. 連結串列問題 (小米)
  1. 撲克牌問題 (小米)
  2. 有十張撲克牌,從上面開始抽,抽出一張放桌子上,然後再抽出一張放撲克牌的最下面,這樣迴圈往復的操作,直到手裡的牌都沒有了。這時,桌子上牌的順序正好是1 2 3 4 5 6 7 8 9 10。要求寫程式碼求出原順序
  3. 手寫大頂堆 (linkedMe)
  4. 手寫LRU 演算法 (火幣)
  5. 字串相加 (滴滴)
  6. 兩個數字型別的字串,直接轉int或者double肯定都放不下,然後求這兩個數的和,返回值還是字串,15分鐘時間,要求無bug
  7. 尋找目標值位置 (滴滴)
  8. 有一個二維陣列,陣列橫向有序,縱向有序,求目標值的位置,10分鐘時間
  9. 求字串“efabcbaefehiabcba”中最長的迴文數,不去重(美團)
  10. 反轉int型別的值x,不要借用String,只用int 即可。&& 針對該程式,寫出其應有的測試用例 (美團)
  11. top K 問題(每日一淘)

寫在最後

以上分享的全部資料都可免費分享領取—— 【點選這裡下載】

還有一份JAVA核心知識點整理(PDF):JVM,JAVA集合,JAVA多執行緒併發,JAVA基礎,Spring原理,微服務,Netty與RPC,網路,日誌,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,設計模式,負載均衡,資料庫,一致性雜湊,JAVA演算法,資料結構,加密演算法,分散式快取,Hadoop,Spark,Storm,YARN,機器學習,雲端計算...