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

前言

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

我這里準(zhǔn)備了一線大廠面試資料和我原創(chuàng)的超硬核PDF技術(shù)文檔,以及我為大家精心準(zhǔn)備的多套簡(jiǎn)歷模板(不斷更新中),希望大家都能找到心儀的工作!有需要的朋友點(diǎn)擊這里備注簡(jiǎn)書自行下載即可,希望對(duì)你們有幫助!

image

一面

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

  • 如何讓hashmap安全?

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

  • 反射是什么?

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

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

  • 線程池的參數(shù)

  • 線程的拋棄策略

  • 線程中的工作隊(duì)列是否有界

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

  • Volatile的作用

  • 詳細(xì)說(shuō)一下happens-before

  • ReetrantLock和sychronized的區(qū)別

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

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

JVM
  • 介紹一下什么是JMM?

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

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

  • 垃圾回收的算法?

  • GC roots可以是哪些對(duì)象

  • 詳細(xì)說(shuō)一下雙親委派機(jī)制?

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

  • 類加載器有哪些?

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

  • 說(shuō)一下對(duì)象鎖和類鎖?

Spring
  • 說(shuō)說(shuō)Spring AOP的實(shí)現(xiàn)

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

  • Spring中Bean對(duì)象的生成過(guò)程

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

  • MySQL的索引有哪些?

  • 什么是MVCC?

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

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

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

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

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

  • Zookeeper的心跳機(jī)制

  • 了解負(fù)載均衡嗎?

二面(重點(diǎn)通過(guò)項(xiàng)目展開問(wèn)題)

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

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

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

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

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

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

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

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

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

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

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

  • 那你會(huì)寫一個(gè)死鎖嗎?

  • 寫完以后你這個(gè)為什么不報(bào)錯(cuò)呢?

  • 打開快照,問(wèn)你是否能看懂?為什么不報(bào)錯(cuò)?

三面

  • 是否能來(lái)實(shí)習(xí)?
  • 未來(lái)的職業(yè)規(guī)劃?
  • 你自己的的優(yōu)缺點(diǎn)?

最后

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


image

image

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

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

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

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