高級匈庭、資深工程師面試題
java
集合類用過哪些?
hashmap 1.8比1.7有哪些變化空凸?
紅黑樹的查詢時(shí)間復(fù)雜度嚎花?
為什么鏈表長度>8時(shí)轉(zhuǎn)成紅黑樹treeMap和hashmap有哪些區(qū)別?
Collections.sort() 用的那種排序算法呀洲,時(shí)間復(fù)雜度
采用了2種排序算法 -- 基本類型數(shù)據(jù)使用快速排序法紊选,對象數(shù)組使用歸并排序啼止。O(log n)場景:比如有一個(gè)服務(wù),昨天上了一次線兵罢,今天從服務(wù)監(jiān)控上看献烦,這個(gè)服務(wù)所有的接口的平均響應(yīng)耗時(shí)增加了不少,讓你來排查這個(gè)問題卖词,你會(huì)從哪幾個(gè)方面考慮巩那?
QPS增高?鎖此蜈?線程池配置的不合理即横?full gc線程池
線程池工作原理,參數(shù)含義jvm
jdk1.8 和1.7相比 jvm內(nèi)存模型有什么區(qū)別裆赵,這個(gè)升級有什么用
描述JVM中一次完整的GC流程东囚,對象如何從創(chuàng)建到老年代,被回收的
線上發(fā)生OOM 該如何排查战授?
cpu負(fù)載非常高页藻,如何排查?多線程
場景:有5個(gè)子線程植兰,我想讓5個(gè)子線程都執(zhí)行完之后份帐,主線程再往下執(zhí)行。怎么實(shí)現(xiàn)楣导?
CyclicBarrir或countDownLatch原理
volatile 的兩個(gè)cpu語義废境,是如何實(shí)現(xiàn)內(nèi)存可見性的(JMM內(nèi)存模型)
aqs的實(shí)現(xiàn)原理,
cas的缺陷
redis
- redis的數(shù)據(jù)結(jié)構(gòu)用過哪些爷辙,及其底層存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)
場景:redis底層是用c語音寫的彬坏,‘\0’ 在c語音字符串中會(huì)被認(rèn)為是字符串的結(jié)束朦促。如果redis字符串存儲(chǔ)膝晾,‘123\0123’,那么get出來是什么? 為什么?
簡述hash表的擴(kuò)容過程
跳躍表的時(shí)間復(fù)雜度 - 候選人redis采用的架構(gòu)模式是哪種务冕,存在什么缺點(diǎn)
- 主從架構(gòu)下的問題血当,集群模式的問題
場景:主從模式下,set key設(shè)置過期時(shí)間禀忆,比如10分鐘臊旭,過了10分鐘之后,get key箩退,還能把set的值拿出來离熏,問題可能出在哪? - 過期機(jī)制了解幾種戴涝,講一下
- redis是單線程的滋戳,為什么單線程還這么快呢钻蔑?
- 如何防止緩存雪崩
mysql數(shù)據(jù)庫
場景:線上數(shù)據(jù)庫出現(xiàn)慢查詢,如何排查優(yōu)化奸鸯,
如何優(yōu)化索引
有哪幾種索引咪笑?
聚簇索引結(jié)構(gòu)
非聚簇索引和聚簇索引結(jié)構(gòu)有何不同
mysql事務(wù)和隔離級別
隔離級別有哪幾個(gè),各自存在的問題
事務(wù)是如何實(shí)現(xiàn)的娄涩?MVCC窗怒?
spring
aop的例子,設(shè)計(jì)實(shí)現(xiàn)原理蓄拣。動(dòng)態(tài)代理
spring中還使用了哪些設(shè)計(jì)模式扬虚?
自己有沒有寫過切面
rocketmq
- rocketmq如何保證性能的?
- 和kafka的區(qū)別球恤?
- 場景:用戶對一個(gè)商品下單孔轴,然后支付完成。下單碎捺、支付成功各自發(fā)了mq路鹰,消費(fèi)者消費(fèi)了這兩個(gè)mq,但這倆mq顯然是有先后順序的收厨,如何:
如何保證不重復(fù)消費(fèi)晋柱?
如何保證順序消費(fèi)?
kafka
kafka 為什么快
kafka怎么實(shí)現(xiàn)順序消費(fèi)
Kafka消息是采用Pull模式诵叁,還是Push模式雁竞?
微服務(wù)
- dubbo 和 spring cloud用過哪個(gè)?講一下注冊發(fā)現(xiàn)的過程拧额,zk(cp模型)和eureka(ap模型)的區(qū)別碑诉,從cap模型講,各屬于什么模型侥锦,哪個(gè)更適合做注冊中心进栽?
- 分布式下的事務(wù),數(shù)據(jù)一致性恭垦。有哪種分布式事務(wù)框架
- 怎么實(shí)現(xiàn)分布式鎖快毛,有幾種方式,優(yōu)缺點(diǎn)