耗時(shí)三個(gè)半小時(shí)琅锻,考的是Java核心的基礎(chǔ)恼蓬。
大概說(shuō)一下幾個(gè)考點(diǎn):Java并發(fā)的知識(shí)點(diǎn)处硬、集合類(lèi)拇派、線程池件豌、多線程之間的通信等
一面:(技術(shù)) 50分鐘
1苟径、自我介紹,直接技術(shù)棧蟆盐。自我介紹很重要,圍繞四個(gè)點(diǎn)去說(shuō)博助。(自報(bào)家門(mén)富岳,項(xiàng)目經(jīng)驗(yàn)窖式,技術(shù)棧萝喘,求職愿望)
2阁簸、分布式:?jiǎn)柕倪€是挺多的启妹。SpringCloud 的框架都問(wèn)了點(diǎn)翅溺,還有Nacos,Sentinel做服務(wù)熔斷限流降級(jí)持久化到數(shù)據(jù)庫(kù)优幸,分布式事務(wù)(TC二階段提交)羹饰。分布式事務(wù)的其他解決方案也沒(méi)有問(wèn)碳却。
3昼浦、JVM:類(lèi)加載機(jī)制馍资,沙箱安全。
4关噪、然后問(wèn)運(yùn)行時(shí)數(shù)據(jù)區(qū)鸟蟹,我答漏了一個(gè)程序計(jì)數(shù)器乌妙。他就接著提問(wèn)程序計(jì)數(shù)器。
然后問(wèn)可達(dá)性分析建钥,什么樣的對(duì)象可以作為GcRoot藤韵、加載的時(shí)候把這些對(duì)象提前找好用的OopMap。
5熊经、OOM泽艘,StackOverFlow,垃圾收集算法镐依,垃圾收集器(G1)焕盟,記憶集绍哎。
6沃于、新生代幾次對(duì)象幾次到老年代咨演?
7、有沒(méi)有可能直接把剛new出來(lái)的對(duì)象放在老年代?(第一次遇到這個(gè)問(wèn)題撇他,我就說(shuō)覺(jué)得有可能,畢竟有些垃圾回收器會(huì)有一個(gè)空間分配擔(dān)保策略。)
8芭毙、多線程:volatile蚣抗,CAS锭魔,總線嗅探织咧,CPU緩存一致性協(xié)議
9庆锦、ReentrantLock、ThreadLocal、Lock和Synchronized的區(qū)別誉帅。
10亚再、CountDownLatch如捅,ABC三個(gè)線程怎么去保證順序執(zhí)行?
11、數(shù)據(jù)庫(kù)優(yōu)化:B+樹(shù)戈稿,Hash索引般甲,最左前綴堪伍,索引優(yōu)化分析,一條龍服務(wù)彻亲,都問(wèn)了一下宙址。
12、Redis:一來(lái)就是分布式鎖,然后別的就沒(méi)問(wèn)了,可能也是覺(jué)得我回答的還行就跳過(guò)了。
13、HashMap:我直接答錯(cuò)了,他問(wèn)擴(kuò)容的觸發(fā)條件是什么倘要,我說(shuō)只是一個(gè)達(dá)到負(fù)載就擴(kuò)容了曹铃。他告訴我是:負(fù)載和Hash沖突同時(shí)發(fā)生糠溜。這個(gè)我真不知道承匣。
14袍暴、final 修飾一個(gè)變量String 怎么去改蚂会,我說(shuō)改不了躲叼,他說(shuō)用反射。我也不知道缸濒。
15、final 修飾一個(gè)對(duì)象Person氮帐,能不能去改對(duì)象的屬性奄容?
16、死鎖怎么排查痊夭?
17酝碳、JVM調(diào)優(yōu)什么做疏哗?
18芽偏、explain + sql 后面的列表都表示什么含義十厢?
二面:(技術(shù)) 30分鐘
1滴肿、自我介紹
2吼肥、HashMap & ConcurrentHashMap
3录平、數(shù)據(jù)庫(kù)連接池
4、Spring和SpringBoot的區(qū)別
5缀皱、輸入一個(gè)網(wǎng)址之后發(fā)生了什么萄涯?(我只知道域名要去DNS解析,找到ip唆鸡,然后才進(jìn)到后臺(tái)端口服務(wù)涝影。但是這個(gè)過(guò)程肯定要經(jīng)歷各種代理和負(fù)載均衡的調(diào)度。之后就是查數(shù)據(jù)庫(kù)返回争占。)
6燃逻、數(shù)據(jù)庫(kù)查詢慢你怎么分析序目?(常規(guī),把知道的說(shuō)出來(lái)就行伯襟。慢查詢?nèi)罩驹痴牵业絪ql,用explain分析姆怪,對(duì)照索引看看建的怎么樣叛赚。如果急用的話那就強(qiáng)制走一個(gè),不急的話那就慢慢優(yōu)化索引結(jié)構(gòu)唄稽揭。)
7俺附、問(wèn)了幾個(gè)索引題。字符串要寫(xiě)單引號(hào)溪掀,字符串查詢?cè)趺丛黾硬樵冃适铝停址饕罅四蔷徒厝讉€(gè)做索引,叫前綴索引揪胃。怎么判斷一個(gè)索引字段選的好不好璃哟,看不重復(fù)的和總數(shù)的比值,越大越好喊递。
8随闪、假如現(xiàn)在系統(tǒng)里面就是要模糊匹配怎么辦?
9骚勘、大數(shù)據(jù)了解嗎蕴掏?(只看過(guò)一點(diǎn)Handoop,把HDFS文件系統(tǒng)做存儲(chǔ)调鲸,MapReduce做計(jì)算說(shuō)了一下盛杰。)
三面:(技術(shù))120分鐘
1、自我介紹
2藐石、List 和 Set 的區(qū)別
3即供、HashSet 是如何保證不重復(fù)的
4、HashMap 是線程安全的嗎于微,為什么不是線程安全的(最好畫(huà)圖說(shuō)明多線程環(huán)境下不安全)逗嫡?
5、HashMap 的擴(kuò)容過(guò)程
6株依、HashMap 1.7 與 1.8 的 區(qū)別驱证,說(shuō)明 1.8 做了哪些優(yōu)化,如何優(yōu)化的恋腕?
7抹锄、final finally finalize
8、強(qiáng)引用 、軟引用伙单、 弱引用获高、虛引用
9、synchronized 的實(shí)現(xiàn)原理以及鎖優(yōu)化吻育?
10念秧、volatile 的實(shí)現(xiàn)原理?
11布疼、Java 的信號(hào)燈摊趾?
12、synchronized 在靜態(tài)方法和普通方法的區(qū)別游两?
13砾层、怎么實(shí)現(xiàn)所有線程在等待某個(gè)事件的發(fā)生才會(huì)去執(zhí)行?
14器罐、CAS?CAS 有什么缺陷渐行,如何解決轰坊?
15、synchronized 和 lock 有什么區(qū)別祟印?
16肴沫、Hashtable 是怎么加鎖的 ?
17蕴忆、HashMap 的并發(fā)問(wèn)題颤芬?
18、ConcurrenHashMap 介紹套鹅?1.8 中為什么要用紅黑樹(shù)站蝠?
19、AQS
20卓鹿、如何檢測(cè)死鎖菱魔?怎么預(yù)防死鎖?
21吟孙、BeanFactory 和 FactoryBean澜倦?
22、Spring IOC 的理解杰妓,其初始化過(guò)程藻治?
23、BeanFactory 和 ApplicationContext巷挥?
24桩卵、Spring Bean 的生命周期,如何被管理的?
25吸占、Spring Bean 的加載過(guò)程是怎樣的晴叨?
26、如果要你實(shí)現(xiàn)Spring AOP矾屯,請(qǐng)問(wèn)怎么實(shí)現(xiàn)兼蕊?
27、如果要你實(shí)現(xiàn)Spring IOC件蚕,你會(huì)注意哪些問(wèn)題孙技?
28、BIO排作、NIO和AIO
29牵啦、Netty 的各大組件
30、Netty的線程模型
31妄痪、TCP 粘包/拆包的原因及解決方法
32哈雏、Dubbo的底層實(shí)現(xiàn)原理和機(jī)制
33、描述一個(gè)服務(wù)從發(fā)布到被消費(fèi)的詳細(xì)過(guò)程
34衫生、分布式系統(tǒng)怎么做服務(wù)治理
35裳瘪、接口的冪等性的概念
36、消息中間件如何解決消息丟失問(wèn)題
37罪针、Dubbo的服務(wù)請(qǐng)求失敗怎么處理
38彭羹、重連機(jī)制會(huì)不會(huì)造成錯(cuò)誤
39、對(duì)分布式事務(wù)的理解
40泪酱、如何實(shí)現(xiàn)負(fù)載均衡派殷,有哪些算法可以實(shí)現(xiàn)?
41墓阀、Zookeeper的用途毡惜,選舉的原理是什么?
42斯撮、mysql分頁(yè)有什么優(yōu)化
43虱黄、悲觀鎖、樂(lè)觀鎖
44吮成、組合索引橱乱,最左原則
45、mysql 的表鎖粱甫、行鎖
46泳叠、Redis用過(guò)哪些數(shù)據(jù)數(shù)據(jù),以及Redis底層怎么實(shí)現(xiàn)
47茶宵、Redis緩存穿透危纫,緩存雪崩
48、如何使用Redis來(lái)實(shí)現(xiàn)分布式鎖
49、Redis的并發(fā)競(jìng)爭(zhēng)問(wèn)題如何解決
50种蝶、詳細(xì)jvm內(nèi)存模型
51契耿、講講什么情況下回出現(xiàn)內(nèi)存溢出,內(nèi)存泄漏螃征?
52搪桂、說(shuō)說(shuō)Java線程棧
53、JVM 年輕代到年老代的晉升過(guò)程的判斷條件是什么呢盯滚?
54踢械、JVM 出現(xiàn) fullGC 很頻繁,怎么去線上排查問(wèn)題魄藕?
55内列、類(lèi)加載為什么要使用雙親委派模式,有沒(méi)有什么場(chǎng)景是打破了這個(gè)模式背率?
總結(jié):
下面總結(jié)了一些問(wèn)題话瞧,要注意自己一定要在自己的邏輯里面自洽,不能前后矛盾寝姿,前因后果要想清楚交排。也可以自己不要把所有問(wèn)題都說(shuō)滿,可以故意漏下問(wèn)題会油,等面試官提問(wèn)(面試套路个粱,自己主導(dǎo)問(wèn)題方向)古毛》妫總之,不然可能一個(gè)不是這個(gè)范圍的問(wèn)題把你問(wèn)到了稻薇,你不知道如何回答嫂冻,會(huì)給面試官一個(gè)不好的印象(為啥你自己的項(xiàng)目你都沒(méi)有吃透?)
面試一定要自信塞椎。本來(lái)應(yīng)聘就是雙向選擇的過(guò)程桨仿,面試的公司也不是非你不進(jìn),不要因?yàn)槟闶敲嬖囌呔妥藨B(tài)很低案狠,一種乞求面試官給你一份工作的姿態(tài)服傍,這樣是不對(duì)的。好的面試應(yīng)該是你自信表達(dá)你自己的理解骂铁,即使不會(huì)也不要為難吹零,不需要支支吾吾或者瞎說(shuō),這是大忌拉庵。不會(huì)就是不會(huì)灿椅,可以瀟灑的回答,沒(méi)有關(guān)系的,好的公司也不會(huì)就你不會(huì)的問(wèn)題一直追問(wèn)茫蛹,這也沒(méi)有意義操刀。
需要以上面試題答案以及面試題里面講解到的技術(shù)知識(shí)點(diǎn)的小伙伴,關(guān)注作者婴洼,后臺(tái)簡(jiǎn)信【面試題】即可獲取面試題答案骨坑。