騰訊面經(jīng)
TEG一面2.26
1. JVM內(nèi)存結(jié)構(gòu)及其作用
2.OOM在哪出現(xiàn),怎么解決
3.怎么判斷要不要GC,哪些對(duì)象要被GC
4.哪些對(duì)象可以作為GCroots
5.redis性能為什么這么高
6. redis持久化
7.持久化怎么保證數(shù)據(jù)不丟失
8.redis集群
9.SpringBoot的結(jié)構(gòu)
10.項(xiàng)目
11.延遲隊(duì)列怎么實(shí)現(xiàn),自己寫一個(gè)怎么實(shí)現(xiàn)
12.手撕:最長(zhǎng)遞增子序列
TEG二面3.4
1. 介紹項(xiàng)目
2. 你對(duì)微服務(wù)架構(gòu)的理解是什么
3. 既然微服務(wù)是對(duì)一個(gè)單體項(xiàng)目的拆分,那直接把每一個(gè)接口拆成一個(gè)服務(wù)是不是更好
4. 說到遠(yuǎn)程調(diào)用比本地代碼調(diào)用更消耗性能,那么把一組微服務(wù)部署在一起通過本地的遠(yuǎn)程調(diào)用,不涉及到不同實(shí)例上遠(yuǎn)程調(diào)用的網(wǎng)絡(luò)開銷,這樣能不能解決這個(gè)問題
5. 一臺(tái)服務(wù)器上不同的兩個(gè)進(jìn)程之間的網(wǎng)絡(luò)調(diào)用,按照網(wǎng)絡(luò)的七層結(jié)構(gòu)來說,這個(gè)請(qǐng)求會(huì)不會(huì)走到網(wǎng)卡,然后通過收發(fā)包回到那個(gè)進(jìn)程
6. 一個(gè)進(jìn)程給另一個(gè)進(jìn)程發(fā)請(qǐng)求,但是其實(shí)并不知道另一個(gè)進(jìn)程是部署在本地還是在遠(yuǎn)端。那操作系統(tǒng)怎么知道這個(gè)請(qǐng)求什么時(shí)候走網(wǎng)卡發(fā)送,什么時(shí)候不走網(wǎng)卡
7. 如果redis性能不是問題,抗幾十萬幾百萬的并發(fā)都行,那么redis還有沒有什么其他問題(提示熱key問題)
8. redis里存什么,數(shù)據(jù)庫里存什么。如果redis里和數(shù)據(jù)庫中存的是一樣的,那么是不是就不需要數(shù)據(jù)庫都行
9. 如果全部在redis中進(jìn)行操作,那么數(shù)據(jù)不一致的時(shí)候redis掛了,那么不就出問題了嗎
10. 進(jìn)程、線程、協(xié)程
11. 進(jìn)程的內(nèi)存結(jié)構(gòu)大概什么樣的、低地址高地址是怎么分布的。
12. 進(jìn)程通信的方式
13. 各種方式能適用于哪種場(chǎng)景
14. 假如說開了一塊共享內(nèi)存大概是3個(gè)g,有兩個(gè)進(jìn)程都把它掛上去了這個(gè)共享內(nèi)存占不占用本機(jī)進(jìn)程的內(nèi)存空間(就是說假如本身有4g,那么掛上這塊共享內(nèi)存之后是不是本身進(jìn)程就相當(dāng)于到了7g,提示共享內(nèi)存底層的實(shí)現(xiàn)機(jī)制)
15. 如果不使用框架,自己來實(shí)現(xiàn)一個(gè)服務(wù)器來接受請(qǐng)求,要做哪些事才行(想問sokect編程里的服務(wù)器端要能收客戶端的請(qǐng)求要做哪些事)
TEG三面3.5
1. 高并發(fā)場(chǎng)景中用到了事務(wù)嗎
2. 常見的事務(wù)有不同的模式組合,用于異構(gòu)的分布式系統(tǒng)的數(shù)據(jù)一致性問題,有哪幾種常見的模型(分布式事務(wù)的兩階段和三階段)
3. rabbitmq中怎么處理消息堆積問題
4. redis中的熱key和大key問題
5. 如果將熱key拆分到不同redis實(shí)例中,那不同實(shí)例之間的數(shù)據(jù)同步怎么解決(怎么保證數(shù)據(jù)在多個(gè)實(shí)例中的一致性)
6. 如果只有1%的key是熱key,其他的不是熱key。熱key的請(qǐng)求量是非熱key的幾十倍。那么用主從的方式怎么去平衡成本
7. mysql是通過什么方式去解決主從同步的
8. binlog日志像事務(wù)類的操作有回滾之類的各種情況,那么怎么解決同步的從節(jié)點(diǎn)也能夠在一段時(shí)間內(nèi)保持最終的一致性(事務(wù)的主從同步是怎么做的)
9. 假設(shè)數(shù)據(jù)庫的主節(jié)點(diǎn)出了問題,那么怎么把流量遷移到從節(jié)點(diǎn)
回答選舉新的主節(jié)點(diǎn),但是面試官說在做數(shù)據(jù)同步的時(shí)候,主節(jié)點(diǎn)掛了會(huì)導(dǎo)致數(shù)據(jù)丟失問題
10. 自己設(shè)計(jì)一個(gè)哈希表的類要怎么構(gòu)建
11. 假設(shè)內(nèi)存大小固定為1M,那么要怎么做。怎么在內(nèi)存有限的情況下保證擴(kuò)展性和安全性
12. 構(gòu)造一個(gè)遞歸的使用場(chǎng)景,遞歸怎么轉(zhuǎn)換為迭代
13. 將一個(gè)Java的源代碼,編譯成一個(gè)可執(zhí)行的文件,整個(gè)編譯過程是怎么做的
14. 接口和類的分別在哪些場(chǎng)景下使用
15. 用類的方式去實(shí)現(xiàn)一個(gè)單例,要怎么做
16. 觀察者模式的應(yīng)用場(chǎng)景
TEG一面3.14
1. 介紹項(xiàng)目
2. Redisson分布式鎖是怎么實(shí)現(xiàn)的,Rdisson具體的加鎖過程有了解過嗎
3.在Redisson可重入的場(chǎng)景下,當(dāng)前線程沒有去解鎖。然后這個(gè)線程復(fù)用了,那么會(huì)不會(huì)重復(fù)的獲取到這個(gè)鎖,或者說意外釋放
4. redis是單線程還是多線程
5. 說下Java集合的繼承結(jié)構(gòu)
6. 常用的集合有哪些,分別適用那種場(chǎng)景
7. hashmap是線程安全的嗎
8. 多線程環(huán)境下hashmap除了put時(shí)候的數(shù)據(jù)覆蓋問題還有什么問題
9. Java中停止一個(gè)線程的話一般怎么停止(怎么讓一個(gè)線程掛掉或者說阻塞起來)
10. 如果一個(gè)線程一直在跑,想讓它停止掉怎么處理(完全停止)
11. 鎖升級(jí)的過程
12. 為什么這么設(shè)計(jì)
13. MySQL中設(shè)計(jì)索引的話要考慮哪些問題、
14. 介紹一下布隆過濾器,以及其原理
15. 布隆過濾器有沒有什么局限的地方
16. Springboot的自動(dòng)裝配
17. Spring中兩個(gè)比較大的特性是什么
18. AOP是怎么做到的
19. IoC控制反轉(zhuǎn),反轉(zhuǎn)的是什么東西
20. Bean的生命周期
21. JVM中的OOM大多可能發(fā)生在區(qū)域
22. 怎么避免出現(xiàn)OOM
23. 對(duì)象在堆區(qū)的晉升機(jī)制
24.一般在做開發(fā)的時(shí)候?qū)σ恍┊惓J窃趺刺幚淼?br />25. 什么情況下Bean對(duì)象會(huì)注入失敗
TEG二面
忘了
1. JVM內(nèi)存結(jié)構(gòu)及其作用
2.OOM在哪出現(xiàn),怎么解決
3.怎么判斷要不要GC,哪些對(duì)象要被GC
4.哪些對(duì)象可以作為GCroots
5.redis性能為什么這么高
6. redis持久化
7.持久化怎么保證數(shù)據(jù)不丟失
8.redis集群
9.SpringBoot的結(jié)構(gòu)
10.項(xiàng)目
11.延遲隊(duì)列怎么實(shí)現(xiàn),自己寫一個(gè)怎么實(shí)現(xiàn)
12.手撕:最長(zhǎng)遞增子序列
TEG二面3.4
1. 介紹項(xiàng)目
2. 你對(duì)微服務(wù)架構(gòu)的理解是什么
3. 既然微服務(wù)是對(duì)一個(gè)單體項(xiàng)目的拆分,那直接把每一個(gè)接口拆成一個(gè)服務(wù)是不是更好
4. 說到遠(yuǎn)程調(diào)用比本地代碼調(diào)用更消耗性能,那么把一組微服務(wù)部署在一起通過本地的遠(yuǎn)程調(diào)用,不涉及到不同實(shí)例上遠(yuǎn)程調(diào)用的網(wǎng)絡(luò)開銷,這樣能不能解決這個(gè)問題
5. 一臺(tái)服務(wù)器上不同的兩個(gè)進(jìn)程之間的網(wǎng)絡(luò)調(diào)用,按照網(wǎng)絡(luò)的七層結(jié)構(gòu)來說,這個(gè)請(qǐng)求會(huì)不會(huì)走到網(wǎng)卡,然后通過收發(fā)包回到那個(gè)進(jìn)程
6. 一個(gè)進(jìn)程給另一個(gè)進(jìn)程發(fā)請(qǐng)求,但是其實(shí)并不知道另一個(gè)進(jìn)程是部署在本地還是在遠(yuǎn)端。那操作系統(tǒng)怎么知道這個(gè)請(qǐng)求什么時(shí)候走網(wǎng)卡發(fā)送,什么時(shí)候不走網(wǎng)卡
7. 如果redis性能不是問題,抗幾十萬幾百萬的并發(fā)都行,那么redis還有沒有什么其他問題(提示熱key問題)
8. redis里存什么,數(shù)據(jù)庫里存什么。如果redis里和數(shù)據(jù)庫中存的是一樣的,那么是不是就不需要數(shù)據(jù)庫都行
9. 如果全部在redis中進(jìn)行操作,那么數(shù)據(jù)不一致的時(shí)候redis掛了,那么不就出問題了嗎
10. 進(jìn)程、線程、協(xié)程
11. 進(jìn)程的內(nèi)存結(jié)構(gòu)大概什么樣的、低地址高地址是怎么分布的。
12. 進(jìn)程通信的方式
13. 各種方式能適用于哪種場(chǎng)景
14. 假如說開了一塊共享內(nèi)存大概是3個(gè)g,有兩個(gè)進(jìn)程都把它掛上去了這個(gè)共享內(nèi)存占不占用本機(jī)進(jìn)程的內(nèi)存空間(就是說假如本身有4g,那么掛上這塊共享內(nèi)存之后是不是本身進(jìn)程就相當(dāng)于到了7g,提示共享內(nèi)存底層的實(shí)現(xiàn)機(jī)制)
15. 如果不使用框架,自己來實(shí)現(xiàn)一個(gè)服務(wù)器來接受請(qǐng)求,要做哪些事才行(想問sokect編程里的服務(wù)器端要能收客戶端的請(qǐng)求要做哪些事)
TEG三面3.5
1. 高并發(fā)場(chǎng)景中用到了事務(wù)嗎
2. 常見的事務(wù)有不同的模式組合,用于異構(gòu)的分布式系統(tǒng)的數(shù)據(jù)一致性問題,有哪幾種常見的模型(分布式事務(wù)的兩階段和三階段)
3. rabbitmq中怎么處理消息堆積問題
4. redis中的熱key和大key問題
5. 如果將熱key拆分到不同redis實(shí)例中,那不同實(shí)例之間的數(shù)據(jù)同步怎么解決(怎么保證數(shù)據(jù)在多個(gè)實(shí)例中的一致性)
6. 如果只有1%的key是熱key,其他的不是熱key。熱key的請(qǐng)求量是非熱key的幾十倍。那么用主從的方式怎么去平衡成本
7. mysql是通過什么方式去解決主從同步的
8. binlog日志像事務(wù)類的操作有回滾之類的各種情況,那么怎么解決同步的從節(jié)點(diǎn)也能夠在一段時(shí)間內(nèi)保持最終的一致性(事務(wù)的主從同步是怎么做的)
9. 假設(shè)數(shù)據(jù)庫的主節(jié)點(diǎn)出了問題,那么怎么把流量遷移到從節(jié)點(diǎn)
回答選舉新的主節(jié)點(diǎn),但是面試官說在做數(shù)據(jù)同步的時(shí)候,主節(jié)點(diǎn)掛了會(huì)導(dǎo)致數(shù)據(jù)丟失問題
10. 自己設(shè)計(jì)一個(gè)哈希表的類要怎么構(gòu)建
11. 假設(shè)內(nèi)存大小固定為1M,那么要怎么做。怎么在內(nèi)存有限的情況下保證擴(kuò)展性和安全性
12. 構(gòu)造一個(gè)遞歸的使用場(chǎng)景,遞歸怎么轉(zhuǎn)換為迭代
13. 將一個(gè)Java的源代碼,編譯成一個(gè)可執(zhí)行的文件,整個(gè)編譯過程是怎么做的
14. 接口和類的分別在哪些場(chǎng)景下使用
15. 用類的方式去實(shí)現(xiàn)一個(gè)單例,要怎么做
16. 觀察者模式的應(yīng)用場(chǎng)景
TEG一面3.14
1. 介紹項(xiàng)目
2. Redisson分布式鎖是怎么實(shí)現(xiàn)的,Rdisson具體的加鎖過程有了解過嗎
3.在Redisson可重入的場(chǎng)景下,當(dāng)前線程沒有去解鎖。然后這個(gè)線程復(fù)用了,那么會(huì)不會(huì)重復(fù)的獲取到這個(gè)鎖,或者說意外釋放
4. redis是單線程還是多線程
5. 說下Java集合的繼承結(jié)構(gòu)
6. 常用的集合有哪些,分別適用那種場(chǎng)景
7. hashmap是線程安全的嗎
8. 多線程環(huán)境下hashmap除了put時(shí)候的數(shù)據(jù)覆蓋問題還有什么問題
9. Java中停止一個(gè)線程的話一般怎么停止(怎么讓一個(gè)線程掛掉或者說阻塞起來)
10. 如果一個(gè)線程一直在跑,想讓它停止掉怎么處理(完全停止)
11. 鎖升級(jí)的過程
12. 為什么這么設(shè)計(jì)
13. MySQL中設(shè)計(jì)索引的話要考慮哪些問題、
14. 介紹一下布隆過濾器,以及其原理
15. 布隆過濾器有沒有什么局限的地方
16. Springboot的自動(dòng)裝配
17. Spring中兩個(gè)比較大的特性是什么
18. AOP是怎么做到的
19. IoC控制反轉(zhuǎn),反轉(zhuǎn)的是什么東西
20. Bean的生命周期
21. JVM中的OOM大多可能發(fā)生在區(qū)域
22. 怎么避免出現(xiàn)OOM
23. 對(duì)象在堆區(qū)的晉升機(jī)制
24.一般在做開發(fā)的時(shí)候?qū)σ恍┊惓J窃趺刺幚淼?br />25. 什么情況下Bean對(duì)象會(huì)注入失敗
TEG二面
忘了
全部評(píng)論
mark一下
mark一下
TEG三面3.5
第8個(gè)問題是故意設(shè)置的坑,因?yàn)榛貪L本身不產(chǎn)生任何binlog事件,從庫自然也不用對(duì)該事務(wù)做任何變更。因?yàn)橹挥性谑聞?wù)真正Commit提交時(shí),才把整個(gè)事務(wù)寫入binlog;而事務(wù)回滾rollback時(shí),innodb不會(huì)把任何內(nèi)容寫入binlog,只會(huì)修改undolog中的日志。
mark
mark一下
mark一下
大佬,請(qǐng)問這個(gè)是應(yīng)屆春招面還是實(shí)習(xí)面?謝謝~
這么多 tql
mark一下
好難
os好多,完全不會(huì)
mark

相關(guān)推薦
點(diǎn)贊 評(píng)論 收藏
分享

點(diǎn)贊 評(píng)論 收藏
分享