不愧是百度的社招一二三面,JVM+spring+mysql+Zookeeper真的問的我懷疑人生了

前言

首先自我介紹一下,本人已經(jīng)工作兩年了,之前一直在一家還算可以的不大不小的公司里面上班(具體是哪家就不透露了),因為上級領(lǐng)導(dǎo)的1無情壓迫終于在今年5月份待不下去了,帶著下面的人一起離了職,離職后一直在家里復(fù)習充實自己,后來朋友問我有個百度的內(nèi)推你要不要試試,心里想著試試就試試唄,沒想到還真的拿到了offer,下面把自己的經(jīng)歷和資料總結(jié)一下分享給大家,也算為后輩開山鋪路了吧!

我這里準備了一線大廠面試資料和我原創(chuàng)的超硬核PDF技術(shù)文檔,以及我為大家精心準備的多套簡歷模板(不斷更新中),希望大家都能找到心儀的工作!希望對你們有幫助!


一面

JAVA基礎(chǔ)
  • Hashmap底層、是否線程安全、在高并發(fā)的情況下會出現(xiàn)什么問題?

  • 如何讓hashmap安全?

  • Concurrenthashmap的底層實現(xiàn)

  • 反射是什么?

  • Hashmap的put時key應(yīng)該注意什么(hashcode和equals)

線程
  • 線程的實現(xiàn)方式

  • 線程池的參數(shù)

  • 線程的拋棄策略

  • 線程中的工作隊列是否有界

  • 線程池的實現(xiàn)流程

  • Volatile的作用

  • 詳細說一下happens-before

  • ReetrantLock和sychronized的區(qū)別

  • Sychronized的鎖(偏向鎖----自旋鎖----重量級鎖)

  • CAS出現(xiàn)的問題,如何解決

JVM
  • 介紹一下什么是JMM?

  • JAVA創(chuàng)建對象的過程?對象頭中包含什么?

  • JVM的內(nèi)存區(qū)域?虛擬機棧中存著什么?

  • 垃圾回收的算法?

  • GC roots可以是哪些對象

  • 詳細說一下雙親委派機制?

  • 能不能打破雙親委派機制?(自己重寫classload方法,或者將查找parent設(shè)為null)

  • 類加載器有哪些?

  • 加載后的類信息存在哪個區(qū)域?

  • 說一下對象鎖和類鎖?

Spring
  • 說說Spring AOP的實現(xiàn)

  • Spring中用到了那些設(shè)計模式

  • Spring中Bean對象的生成過程

Mysql
  • 數(shù)據(jù)庫引擎有哪些?他們之間的區(qū)別

  • MySQL的索引有哪些?

  • 什么是MVCC?

  • 發(fā)現(xiàn)慢查詢以后如何做?

  • Explain中的關(guān)鍵字有哪些?(id、table、type、key、rows)

  • Hbase和MySQL的區(qū)別?

  • MySQL保證原子性?(使用undo log實現(xiàn)原子一致性,當事務(wù)回滾時,可以通過undo log進行回滾,如果inert,此時需要delete;他記錄了回滾需要的信息)

Zookeeper
  • 說一說Zookeeper(文件配置、集群管理、分布式鎖、隊列管理)(監(jiān)聽機制:ZooKeeper的Watcher機制主要包括客戶端線程、客戶端WatcherManager、Zookeeper 服務(wù)器三部分。客戶端在向ZooKeeper服務(wù)器注冊的同時,會將Watcher對象存儲在客戶端的WatcherManager當中。當ZooKeeper服務(wù)器觸發(fā)Watcher事件后,會向客戶端發(fā)送通知,客戶端線程從WatcherManager中取出對應(yīng)的Watcher對象來執(zhí)行回調(diào)邏輯)選舉機制:半數(shù)機制

  • Zookeeper的心跳機制

  • 了解負載均衡嗎?

二面(重點通過項目展開問題)

  • 大文件數(shù)據(jù)上傳這個有沒有什么改進?(多線程上傳、value的靜態(tài)內(nèi)部類是否可以用枚舉、boolean是否可以用位存儲)

  • 多線程的優(yōu)勢和缺點?(優(yōu)點:高并發(fā)、多核CPU上利用上下文切換資源少)(缺點:資源少的情況下出現(xiàn)死鎖、緩存一致性、指令重排)

  • 你覺得CPU上可能出現(xiàn)指令重排嗎?

  • 如果你說的這個是多線程上下文切換資源少的話,用進程不可以嗎?交換數(shù)據(jù)使用共享內(nèi)存

  • 假設(shè)有4個CPU,每個CPU上有一個進程,進程之間使用共享內(nèi)存?你覺得不用線程是不是可以?像ngnix

  • 為什么多線程過程中是有緩存一致性?(工作內(nèi)存和共享主存)

  • Volatile 如何保證內(nèi)存可見性?

  • 工作內(nèi)存和共享內(nèi)存存在哪里?

  • 那如果存在棧中就不應(yīng)該有緩存一致性呀?

  • MESI協(xié)議中有幾級緩存?緩存中哪一級是私有的,哪一級是共有的?那緩存存在哪里?

  • 如何會產(chǎn)生死鎖?

  • 那你會寫一個死鎖嗎?

  • 寫完以后你這個為什么不報錯呢?

  • 打開快照,問你是否能看懂?為什么不報錯?

三面

  • 是否能來實習?
  • 未來的職業(yè)規(guī)劃?
  • 你自己的的優(yōu)缺點?

最后

最后提供免費的Java架構(gòu)學(xué)習資料,學(xué)習技術(shù)內(nèi)容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高并發(fā)、高性能、分布式,性能優(yōu)化,微服務(wù) 高級架構(gòu)開發(fā)等等。



還有Java核心知識點+全套架構(gòu)師學(xué)習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領(lǐng)取+阿里美團網(wǎng)易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring源碼合集+Java架構(gòu)實戰(zhàn)電子書。有需要的朋友點擊這里備注簡書自行下載即可,希望對正在準備面試的你有一定的幫助,最后依然祝福大家,求妻得妻,求子得子,求offer得offer。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容