最近喜報(bào)有點(diǎn)多,今天分享面經(jīng)的這位小伙伴從事Java工作已經(jīng)4年+设捐。
這兩個(gè)月陸續(xù)參加了多家一線互聯(lián)網(wǎng)企業(yè)的高級(jí)Java面試借浊,包括阿里、字節(jié)跳動(dòng)(今日頭條)萝招、京東蚂斤、快手、科大訊飛等槐沼,幸運(yùn)拿下了兩個(gè)offer曙蒸,綜合考量了下,最終選取了其中1家公司入職岗钩。
涉及隱私纽窟,這里就不透露具體入職哪家公司,以及每道面試題的具體出處啦兼吓,只是將我在過(guò)去兩個(gè)月中所遇到過(guò)的面試真題臂港,分類打包一次分享給大家。
面試題目總結(jié)
Java 基礎(chǔ)部分
基本這些公司都會(huì)問(wèn)到相關(guān)基礎(chǔ)视搏,所以审孽,一般來(lái)說(shuō)基礎(chǔ)的準(zhǔn)備是必要并且通用的,所以這部分真的很重要浑娜。
什么是Java序列化佑力,如何實(shí)現(xiàn)Java序列化?
Java中的異常有哪幾類?分別怎么使用筋遭?
常用的集合類有哪些打颤?
Java有自己的內(nèi)存回收機(jī)制杂数,但為什么還存在內(nèi)存泄露問(wèn)題呢?
NIO是什么瘸洛?適用于何種場(chǎng)景?
說(shuō)說(shuō)HashMap的實(shí)現(xiàn)原理次和,如何保證HashMap的線程安全?
計(jì)算機(jī)網(wǎng)絡(luò)
計(jì)算機(jī)網(wǎng)絡(luò)部分的題目還是挺容易的,考察的點(diǎn)不會(huì)那么深入靶庙。
通常來(lái)說(shuō)也就是這些問(wèn)題:
TCP 有哪些狀態(tài)宙项?
TCP的滑動(dòng)窗口協(xié)議有什么用?講講原理畅形。
詳細(xì)描述TCP四次揮手過(guò)程养距?
三次握手、四次揮手日熬,為啥不是兩次棍厌?
RPC和http的區(qū)別?
HTTP協(xié)議都有哪些方法竖席?
Java虛擬機(jī)(JVM)
JVM內(nèi)存模型結(jié)構(gòu)耘纱?
方法區(qū)和直接內(nèi)存什么時(shí)候會(huì)oom?
JVM收集器G1的內(nèi)存模型和CMS的內(nèi)存模型有什么不同毕荐?
JVM調(diào)優(yōu)用過(guò)嗎束析?
如何查看Java內(nèi)存使用情況(jconsole、命令jmap憎亚、jstack等等)员寇?
數(shù)據(jù)庫(kù)
Join(inner、left第美、right)的區(qū)別蝶锋?
Union和union all區(qū)別?
ACID斋日,具體是啥意思?
事務(wù)隔離級(jí)別?
幻讀和不可重復(fù)讀的區(qū)別?
Mysql和Mongodb有啥區(qū)別?
,Mysql存儲(chǔ)引擎中索引的實(shí)現(xiàn)機(jī)制牲览;
數(shù)據(jù)庫(kù)事務(wù)的幾種粒度;
如何解決高并發(fā)減庫(kù)存問(wèn)題恶守?
SQL什么情況下不會(huì)使用索引第献?
行鎖、表鎖兔港,樂(lè)觀鎖庸毫、悲觀鎖,區(qū)別分別是什么衫樊?
Spring
Bean的生命周期飒赃?
什么是DI利花、為什么DI、DI的類型(構(gòu)造器注入载佳、方法注入)炒事?
Spring如何解決循環(huán)依賴問(wèn)題?
Spring框架中IOC的原理是什么蔫慧?
spring的依賴注入有哪幾種方式
Spring 如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)事務(wù)挠乳?
Spring boot和spring的差別,tomcat如何嵌入spring boot的/spring boot中的tomcat是如何啟動(dòng)的姑躲?
多線程
線程的幾種狀態(tài)睡扬,請(qǐng)畫出具體的狀態(tài)流轉(zhuǎn)圖?
Java wait黍析、sleep的區(qū)別卖怜?
volatile如何實(shí)現(xiàn)指令重排序?
線程池中的阻塞隊(duì)列如果滿了怎么辦(拒絕策略)阐枣?
Synchronized和AQS異同马靠,AQS公平非公平如何實(shí)現(xiàn)?
多線程里面對(duì)一個(gè)整型做加減為啥不能用volatile侮繁?
voliatile和synchonized有什么區(qū)別虑粥?synchonized和jdk提供的Lock包又有什么區(qū)別?
Redis
列舉下你所知道的常用的Redis客戶端并發(fā)模型?
聊下分布式緩存宪哩,一致性hash娩贷。
如何解決緩存單機(jī)熱點(diǎn)問(wèn)題?
Memcache與Redis的區(qū)別锁孟?
列舉一個(gè)常用的消息中間件彬祖,如果消息要保序如何實(shí)現(xiàn)?
Zookeeper有哪些功能品抽?
微服務(wù)
什么是微服務(wù)储笑?
什么是微服務(wù)熔斷?什么是服務(wù)降級(jí)圆恤?
微服務(wù)的優(yōu)點(diǎn)突倍、缺點(diǎn)分別是什么?
你所知道的微服務(wù)技術(shù)有哪些盆昙?列舉1-2個(gè)案例羽历?
SpringCloud和Dubbo 有哪些區(qū)別?
算法
如何遍歷一棵二叉樹淡喜?
二叉樹寬度遍歷秕磷?
用Java寫一個(gè)冒泡排序算法?
描述一下鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)炼团。
數(shù)據(jù)結(jié)構(gòu)的話澎嚣,鏈表疏尿,樹,圖的基本知識(shí)得懂易桃?
了解樹的先序遍歷褥琐,中序遍歷,后序遍歷晤郑。圖的廣度優(yōu)先搜索算法踩衩,深度優(yōu)先搜索算法?
HR 面
除了工作中經(jīng)常應(yīng)用到的技術(shù)贩汉,有關(guān)注、學(xué)習(xí)其它主流新技術(shù)嗎锚赤?
離開(kāi)上一家公司的原因是什么匹舞?
你的優(yōu)、缺點(diǎn)分別是什么线脚?
未來(lái)的職業(yè)規(guī)劃赐稽?
面試經(jīng)驗(yàn)總結(jié)
面試題目范圍
面試主要考察候選人的基礎(chǔ)知識(shí)、項(xiàng)目經(jīng)驗(yàn)浑侥、技術(shù)深度姊舵,每個(gè)候選人被問(wèn)到的題目及難易程度都略有不同。
一方面寓落,要看面試官對(duì)你的第一感覺(jué)如何(還真有點(diǎn)像相親)括丁,如果你能在面試前幾分鐘,能給面試官留下好印象伶选,那么你在面試時(shí)得到的機(jī)會(huì)與包容史飞,就會(huì)相對(duì)多一些。
另一方面仰税,現(xiàn)場(chǎng)面試有60%-80%的題目构资,可能就出自于你的簡(jiǎn)歷,面試官會(huì)依據(jù)你簡(jiǎn)歷上提到的知識(shí)陨簇、經(jīng)驗(yàn)吐绵、項(xiàng)目,去深挖你的技能掌握程度河绽。因此己单,真的是切記:慎用精通,慎用精通葵姥,慎用精通荷鼠。如果你只是接觸、了解某個(gè)技術(shù)的皮毛榔幸,就在簡(jiǎn)歷中說(shuō)自己精通允乐,保證你會(huì)被虐得很慘矮嫉,最終反而得不償失。
認(rèn)真對(duì)待每一場(chǎng)面試
如果沒(méi)有準(zhǔn)備充分就去參加面試牍疏,既浪費(fèi)彼此時(shí)間蠢笋,也是浪費(fèi)來(lái)之不易的機(jī)會(huì),要知道得到好公司的面試機(jī)會(huì)不易鳞陨,機(jī)會(huì)都是給有準(zhǔn)備人的昨寞。我始終相信:當(dāng)下所付出的每一分努力與堅(jiān)持,都會(huì)在未來(lái)的某一天厦滤,得到豐厚的回饋援岩。
優(yōu)知學(xué)院:構(gòu)建50萬(wàn)年薪技能框架+68個(gè)BAT面試高頻必考點(diǎn)
面試結(jié)束復(fù)盤查漏補(bǔ)缺
每次面試都是檢驗(yàn)自己知識(shí)與技術(shù)實(shí)力的一次機(jī)會(huì),面試結(jié)束后建議大家及時(shí)總結(jié)復(fù)盤掏导,查漏補(bǔ)缺享怀,然后有針對(duì)性地進(jìn)行學(xué)習(xí),既能提高下一場(chǎng)面試的成功概率趟咆,還能增加自己的技術(shù)知識(shí)棧儲(chǔ)備添瓷,可謂是一舉兩得。
以上值纱,是我在面試過(guò)程中所遇到的題目鳞贷,以及積累到的經(jīng)驗(yàn),全部分享給大家虐唠。
如果覺(jué)得有用搀愧,謝謝點(diǎn)贊支持下。
送最新總結(jié)的阿里集團(tuán)高級(jí)Java必考題和答案疆偿,供大家參考
大廠面試資料分享妈橄,基本漲薪30%左右
這份資料包括:Java JVM 多線程 MySQL Redis Kafka Docker RocketMQ Nginx MQ隊(duì)列 數(shù)據(jù)結(jié)構(gòu) 并發(fā)編程 并發(fā)壓測(cè) 秒殺架構(gòu) Alibaba 京東 騰訊 阿里 字節(jié) 算法 多線程 高并發(fā)?等等面試題材
面試資料獲取方式:點(diǎn)我獲取