前言
首先自我介紹一下,本人已經(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。