日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【大牛系列教学】靠着这份面试题跟答案

發布時間:2023/11/30 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【大牛系列教学】靠着这份面试题跟答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開篇閑扯

打工人,打工魂,我們生而人上人。當“資本主義”逐漸禁錮我們人(大)上(韭)人(菜)肉體的時候,那一刻我才明白那個日不落帝國·資本主義收割機·瑞民族之光幸·瑞幸咖啡是多么的了不起,盡管我不懂咖啡,但還是要說一聲謝謝!說到咖啡,喝完就想上廁所,對寫bug的我來說太不友好了,畢竟我不(很)喜歡帶薪上廁所。

回歸本次的不正經Java文章。上篇文章末尾處已經提到了,主要會把我對Synchronized的理解進行一次全方位的梳理,如果能幫助到大家吊打面試官,萬分榮幸。

一面

一面就做了一道算法題,要求兩小時內完成,給了長度為N的有重復元素的數組,要求輸出第10大的數。典型的TopK問題,快排算法搞定。

算法題要注意的是合法性校驗、邊界條件以及異常的處理。另外,如果要寫測試用例,一定要保證測試覆蓋場景盡可能全。加上平時刷刷算法題,這種考核應該沒問題的。

二面

  • 自我介紹下唄
  • 開源項目貢獻過代碼么?(Dubbo提過一個打印accesslog的bug算么)
  • 目前在部門做什么,業務簡單介紹下,內部有哪些系統,作用和交互過程說下
  • Dubbo踩過哪些坑,分別是怎么解決的?(說了異常處理時業務異常捕獲的問題,自定義了一個異常攔截器)
  • 開始進入正題,說下你對線程安全的理解(多線程訪問同一個對象,如果不需要考慮額外的同步,調用對象的行為就可以獲得正確的結果就是線程安全)
  • 事務有哪些特性?(ACID)
  • 怎么理解原子性?(同一個事務下,多個操作要么成功要么失敗,不存在部分成功或者部分失敗的情況)
  • 樂觀鎖和悲觀鎖的區別?(悲觀鎖假定會發生沖突,訪問的時候都要先獲得鎖,保證同一個時刻只有線程獲得鎖,讀讀也會阻塞;樂觀鎖假設不會發生沖突,只有在提交操作的時候檢查是否有沖突)這兩種鎖在Java和MySQL分別是怎么實現的?(Java樂觀鎖通過CAS實現,悲觀鎖通過synchronize實現。mysql樂觀鎖通過MVCC,也就是版本實現,悲觀鎖可以通過select… for update加上排它鎖)
  • HashMap為什么不是線程安全的?(多線程操作無并發控制,順便說了在擴容的時候多線程訪問時會造成死鎖,會形成一個環,不過擴容時多線程操作形成環的問題再JDK1.8已經解決,但多線程下使用HashMap還會有一些其他問題比如數據丟失,所以多線程下不應該使用HashMap,而應該使用ConcurrentHashMap)怎么讓HashMap變得線程安全?(Collections的synchronize方法包裝一個線程安全的Map,或者直接用ConcurrentHashMap)兩者的區別是什么?(前者直接在put和get方法加了synchronize同步,后者采用了分段鎖以及CAS支持更高的并發)
  • jdk1.8對ConcurrentHashMap做了哪些優化?(插入的時候如果數組元素使用了紅黑樹,取消了分段鎖設計,synchronize替代了Lock鎖)為什么這樣優化?(避免沖突嚴重時鏈表多長,提高查詢效率,時間復雜度從O(N)提高到O(logN))
  • redis主從機制了解么?怎么實現的?
  • 有過GC調優的經歷么?(有點虛,答得不是很好)
  • 有什么想問的么?
  • 三面

  • 簡單自我介紹下
  • 監控系統怎么做的,分為哪些模塊,模塊之間怎么交互的?用的什么數據庫?(MySQL)使用什么存儲引擎,為什么使用InnnoDB?(支持事務、聚簇索引、MVCC)
  • 訂單表有做拆分么,怎么拆的?(垂直拆分和水平拆分)
  • 水平拆分后查詢過程描述下
  • 如果落到某個分片的數據很大怎么辦?(按照某種規則,比如哈希取模、range,將單張表拆分為多張表)
  • 哈希取模會有什么問題么?(有的,數據分布不均,擴容縮容相對復雜 )
  • 分庫分表后怎么解決讀寫壓力?(一主多從、多主多從)
  • 拆分后主鍵怎么保證惟一?(UUID、Snowflake算法)
  • Snowflake生成的ID是全局遞增唯一么?(不是,只是全局唯一,單機遞增)
  • 怎么實現全局遞增的唯一ID?(講了TDDL的一次取一批ID,然后再本地慢慢分配的做法)
  • Mysql的索引結構說下(說了B+樹,B+樹可以對葉子結點順序查找,因為葉子結點存放了數據結點且有序)
  • 主鍵索引和普通索引的區別(主鍵索引的葉子結點存放了整行記錄,普通索引的葉子結點存放了主鍵ID,查詢的時候需要做一次回表查詢)一定要回表查詢么?(不一定,當查詢的字段剛好是索引的字段或者索引的一部分,就可以不用回表,這也是索引覆蓋的原理)
  • 你們系統目前的瓶頸在哪里?
  • 你打算怎么優化?簡要說下你的優化思路
  • 有什么想問我么?
  • 四面

  • 介紹下自己
  • 為什么要做逆向?
  • 怎么理解微服務?
  • 服務治理怎么實現的?(說了限流、壓測、監控等模塊的實現)
  • 這個不是中間件做的事么,為什么你們部門做?(當時沒有單獨的中間件團隊,微服務剛搞不久,需要進行監控和性能優化)
  • 說說Spring的生命周期吧
  • 說說GC的過程(說了young gc和full gc的觸發條件和回收過程以及對象創建的過程)
  • CMS GC有什么問題?(并發清除算法,浮動垃圾,短暫停頓)
  • 怎么避免產生浮動垃圾?(記得有個VM參數設置可以讓掃描新生代之前進行一次young gc,但是因為gc是虛擬機自動調度的,所以不保證一定執行。但是還有參數可以讓虛擬機強制執行一次young gc)
  • 強制young gc會有什么問題?(STW停頓時間變長)
  • 知道G1么?(了解一點 )
  • 回收過程是怎么樣的?(young gc、并發階段、混合階段、full gc,說了Remember Set)
  • 你提到的Remember Set底層是怎么實現的?
  • 有什么想問的么?
  • 五面

    五面是HRBP面的,和我提前預約了時間,主要聊了之前在螞蟻的實習經歷、部門在做的事情、職業發展、福利待遇等。阿里面試官確實是具有一票否決權的,很看重你的價值觀是否match,一般都比較喜歡皮實的候選人。HR面一定要誠實,不要說謊,只要你說謊HR都會去證實,直接cut了。

  • 之前螞蟻實習三個月怎么不留下來?
  • 實習的時候主管是誰?
  • 實習做了哪些事情?(尼瑪這種也問?)
  • 你對技術怎么看?平時使用什么技術棧?(阿里HR真的是既當爹又當媽,)
  • 最近有在研究什么東西么
  • 你對SRE怎么看
  • 對待遇有什么預期么
  • 總結

    談到面試,其實說白了就是刷題刷題刷題,天天作死的刷。。。。。

    為了準備這個“金三銀四”的春招,狂刷一個月的題,狂補超多的漏洞知識,像這次美團面試問的算法、數據庫、Redis、設計模式等這些題目都是我刷到過的

    并且我也將自己刷的題全部整理成了PDF或者Word文檔(含詳細答案解析),有需要的朋友可以戳這里即可免費領取

    66個Java面試知識點

    架構專題(MySQL,Java,Redis,線程,并發,設計模式,Nginx,Linux,框架,微服務等)+大廠面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)

    算法刷題(PDF)

    面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)**

    [外鏈圖片轉存中…(img-5JAR76gP-1623850583781)]

    算法刷題(PDF)

    總結

    以上是生活随笔為你收集整理的【大牛系列教学】靠着这份面试题跟答案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。