騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

邁入2020年,我們開始了嶄新的一年,也要學會跟過去告別。對於2019年我的個人總結,唯有2個字:可惜!實際上,在2019年末之際,我去騰訊面試了一波,卻卡在了第三面,主要是關於“鎖”方面的面試題沒有答得太好,不過並不氣餒,今年春節比以往來得早一些,所以做好準備,春招二戰,我也相信自己是沒有太大的問題的。

下文的內容主要是分享一下我面試騰訊的一個面試題,以及我個人面試過後的一個知識梳理和總結。內容包括了許多的學習資料和文檔,有需要的朋友直接私信我【騰訊】即可免費領取~

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

騰訊Java崗面經:3面被掛,全敗在了“鎖”上

騰訊三面核心面試題:

  • 進程和線程有什麼區別?進程之間的通信方式有哪些?線程呢?
  • 什麼是死鎖,如何避免死鎖,死鎖和飢餓有什麼關係?可以給我手寫一個產生飢餓的情況嗎?如何避免死鎖,銀行家算法知道嗎?
  • 怎麼設置一個key的過期時間?
  • redis中的哈希槽你知道吧?
  • 那他和一致性哈希有什麼區別呢?
  • 一致性哈希裡的虛擬節點是什麼?
  • 你用了分佈式鎖,那分佈式鎖有哪些實現方式?都有哪些優缺點?
  • Synchronized和Lock哪個更好?
  • HashMap中的get()方法是如何實現的?
  • HashMap可以用在哪些場景?
  • JVM,垃圾回收機制,內存劃分等
  • SQL優化,常用的索引?
  • 兩個10G的文件,裡面是一些url,內存只有1G,如何將這兩個文件合併,找到相同的url?
  • 1000個多併發線程,10臺機器,每臺機器4核的,設計線程池大小。
  • 代碼題:兩個有序數組,數組中存在重複數字,合併成一個有序數組,去除重複數字。
  • 什麼情況會出現雪崩,以及如何應對?
  • 負載均衡的原理
  • 數據庫事務屬性
  • 與同事溝通的時候,如果遇到衝突瞭如何解決?
  • 工作中覺得哪方面欠缺?

騰訊面試題答案:

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

面試必備之“鎖”集合

01 面試必備之樂觀鎖和悲觀鎖

  • 說一下什麼是樂觀鎖?什麼是悲觀鎖?
  • 簡單描述一下悲觀鎖和樂觀鎖的使用場景
  • 說一下樂觀鎖常見的實現方式
  • 樂觀鎖有什麼缺點嗎?
  • CAS與Synchronized的使用情景

02 面試必備之分佈式鎖

  • 為什麼用分佈式鎖?
  • 基於Redis實現分佈式鎖(實現原理)
  • 基於zookeeper實現分佈式鎖
  • 講講分佈式鎖的實現與應用場景
  • 講一講分佈式鎖應該具備的條件
  • Redis分佈式鎖如何續期?
  • 為什麼用了分佈式鎖還出現超賣?

03 面試必備之MySQL鎖

  • MySQL 中有哪幾種鎖?
  • 說一下鎖的優化策略
  • 什麼是鎖?說一下基本類型
  • 如何加表鎖?
  • 說一說MyISAM的併發鎖
  • InnoDB鎖
  • 說一下行鎖的實現
  • 什麼是死鎖?鎖等待?如何優化這類問題?通過數據庫哪些表可以監控?

04 一個讀寫鎖面試題

  • 一個Spring Bean類中有一個服務地址信息的成員變量,這個bean類中成員函數會根據服務地址調用其接口,同時這個服務地址信息可能會在運行時被用戶修改,這種情況下是否存在線程安全問題?
  • 那有哪些方法解決這個問題?
  • 簡單講一下Java讀寫鎖,你會怎麼用?
  • 你知道Java讀寫鎖實現原理嗎?

面試題答案:

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

制定複習計劃,備戰春招,二戰騰訊,定拿offer

這次面試騰訊沒有拿到好的結果,實際上也在我的意料之中,表面是被“鎖”給搞暈了,實際上還是自己的知識儲備不足,因此準備春招二戰,一定要有一個系統性的學習計劃,把知識都要複習到位,做到查漏補缺。

(一)Java面試手冊

這份Java面試手冊,一共整理了350道一線大廠Java崗的核心面試題,基本上各個知識面都包括了,刷完這本面試手冊,差不多就能夠對大廠喜歡問什麼,做到心中有數了。

  • 性能優化面試專欄(Tomcat+JVM+Mysql)
  • 微服務架構面試專欄(SpringCloud+SpringBoot+Dubbo)
  • 併發編程高級面試專欄
  • 開源框架面試題專欄(Spring+SpringMVC+MyBatis)
  • 分佈式面試專欄(分佈式限流+分佈式通訊+分佈式數據庫)
騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

(2)閱讀學習筆記

關於一些技術知識點,實際上光看書本或面試題是很難加深理解的,所以我們平日可以閱讀一些大佬們寫的學習筆記。目前,我手上也整理了一些,這裡以Redis筆記和SpringBoot筆記為例吧。

  • Redis學習筆記:

簡單來說redis就是一個數據庫不過與傳統數據庫不同的是redis的數據是存在內存中的所以存寫速度非常快,因此redis被廣泛應用於緩存方向。另外, redis也經常用來做分佈式鎖。redis 提供了多種數據類型來支持不同的業務場景。除此之外, redis支持事務、持久化、 LUA腳本、LRU驅動事件、多種集群方案。

這份Redis學習筆記,實際上對學習Redis是很有幫助的,能夠幫助你加快對Redis 的理解和應用。

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

  • Spring Boot學習筆記

相信小夥伴們在使用 Spring 或 SpringMVC 的過程中,或多或少會被各種配置問題所牽絆,這些配置不僅徒增工作量,而且在跨平臺部署時容易出現問題。

因此,Spring Boot 應運而生,它集成了大量常用的第三方庫配置(例如 Jackson、JDBC、MongoDB、Redis、Mail 等等),這些第三方庫幾乎都可以零配置的開箱即用,可以幫助我們快速搭建一個項目,從而讓開發者能夠更加專注於業務邏輯。

這份Spring Boot學習筆記,能夠讓我們快速瞭解到SpringBoot,從入門到進階,深入理解。

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

(3)理清思路,提升信心

無論是學習還是面試,都要在自己腦海中有一個清晰的思路,也就是至少自己有一個知識性的脈絡在腦海中,這樣也能夠提升自己的自信心,應對面試官的種種。

關於思路,我自己也是整理了一個比較清晰的脈絡大綱,無論是現在的複習也好,還是日後工作以後不斷學習來提升自己,都會按照這個大綱一步一步,當我全部掌握時,相信這個臺階上升的不只一星半點。

  • JVM和性能優化為例
騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

騰訊Java崗面試,被“鎖”給搞暈了?這樣複習,春招二戰沒問題

寫在最後

馬上春招就要來臨,實際上春招的競爭力要比秋招大的多,畢竟還有考研考公大軍的注入,因此要想在春招中拔得頭籌,唯有提升自己的競爭力。

最後提醒一次:以上所有的資料均可以免費分享,有需要的朋友,只需要你轉發+評論此文,關注我,然後私信【騰訊】即可獲取關鍵詞~


分享到:


相關文章: