經(jīng)常面試一些候選人,整理了下我面試使用的題目,陸陸續(xù)續(xù)整理出來的題目很多,所以每次會(huì)抽一部分來問。答案會(huì)在后面的文章中逐漸發(fā)布出來。
基礎(chǔ)題目
1、Java線程的狀態(tài)
2、進(jìn)程和線程的區(qū)別,進(jìn)程間如何通訊,線程間如何通訊
3、HashMap的數(shù)據(jù)結(jié)構(gòu)是什么?如何實(shí)現(xiàn)的。和HashTable,ConcurrentHashMap的區(qū)別
4、Cookie和Session的區(qū)別
5、索引有什么用?如何建索引?
6、ArrayList是如何實(shí)現(xiàn)的,ArrayList和LinkedList的區(qū)別?ArrayList如何實(shí)現(xiàn)擴(kuò)容。
7、equals方法實(shí)現(xiàn)
8、面向?qū)ο?/p>
9、線程狀態(tài),BLOCKED和WAITING有什么區(qū)別
10、JVM如何加載字節(jié)碼文件
11、JVM GC,GC算法。
12、什么情況會(huì)出現(xiàn)Full GC,什么情況會(huì)出現(xiàn)yong GC。
13、JVM內(nèi)存模型
14、Java運(yùn)行時(shí)數(shù)據(jù)區(qū)
15、事務(wù)的實(shí)現(xiàn)原理
技術(shù)深度
1、有沒有看過JDK源碼,看過的類實(shí)現(xiàn)原理是什么。
2、HTTP協(xié)議
3、TCP協(xié)議
4、一致性Hash算法
5、JVM如何加載字節(jié)碼文件
6、類加載器如何卸載字節(jié)碼
7、IO和NIO的區(qū)別,NIO優(yōu)點(diǎn)
8、Java線程池的實(shí)現(xiàn)原理,keepAliveTime等參數(shù)的作用。
9、HTTP連接池實(shí)現(xiàn)原理
10、數(shù)據(jù)庫連接池實(shí)現(xiàn)原理
11、數(shù)據(jù)庫的實(shí)現(xiàn)原理
技術(shù)框架
1、看過哪些開源框架的源碼
2、為什么要用Redis,Redis有哪些優(yōu)缺點(diǎn)?Redis如何實(shí)現(xiàn)擴(kuò)容?
3、Netty是如何使用線程池的,為什么這么使用
4、為什么要使用Spring,Spring的優(yōu)缺點(diǎn)有哪些
5、Spring的IOC容器初始化流程
6、Spring的IOC容器實(shí)現(xiàn)原理,為什么可以通過byName和ByType找到Bean
7、Spring AOP實(shí)現(xiàn)原理
8、消息中間件是如何實(shí)現(xiàn)的,技術(shù)難點(diǎn)有哪些
系統(tǒng)架構(gòu)
1、如何搭建一個(gè)高可用系統(tǒng)
2、哪些設(shè)計(jì)模式可以增加系統(tǒng)的可擴(kuò)展性
3、介紹設(shè)計(jì)模式,如模板模式,命令模式,策略模式,適配器模式、橋接模式、裝飾模式,觀察者模式,狀態(tài)模式,訪問者模式。
4、抽象能力,怎么提高研發(fā)效率。
5、什么是高內(nèi)聚低耦合,請舉例子如何實(shí)現(xiàn)
6、什么情況用接口,什么情況用消息
7、如果AB兩個(gè)系統(tǒng)互相依賴,如何解除依賴
8、如何寫一篇設(shè)計(jì)文檔,目錄是什么
9、什么場景應(yīng)該拆分系統(tǒng),什么場景應(yīng)該合并系統(tǒng)
10、系統(tǒng)和模塊的區(qū)別,分別在什么場景下使用
分布式系統(tǒng)
1、分布式事務(wù),兩階段提交。
2、如何實(shí)現(xiàn)分布式鎖
3、如何實(shí)現(xiàn)分布式Session
4、如何保證消息的一致性
5、負(fù)載均衡
6、正向代理(客戶端代理)和反向代理(服務(wù)器端代理)
7、CDN實(shí)現(xiàn)原理
8、怎么提升系統(tǒng)的QPS和吞吐量
實(shí)戰(zhàn)能力
1、有沒有處理過線上問題?出現(xiàn)內(nèi)存泄露,CPU利用率標(biāo)高,應(yīng)用無響應(yīng)時(shí)如何處理的。
2、開發(fā)中有沒有遇到什么技術(shù)問題?如何解決的
3、如果有幾十億的白名單,每天白天需要高并發(fā)查詢,晚上需要更新一次,如何設(shè)計(jì)這個(gè)功能。
4、新浪微博是如何實(shí)現(xiàn)把微博推給訂閱者
5、Google是如何在一秒內(nèi)把搜索結(jié)果返回給用戶的。
6、12306網(wǎng)站的訂票系統(tǒng)如何實(shí)現(xiàn),如何保證不會(huì)票不被超賣。
7、如何實(shí)現(xiàn)一個(gè)秒殺系統(tǒng),保證只有幾位用戶能買到某件商品。
軟能力
1、如何學(xué)習(xí)一項(xiàng)新技術(shù),比如如何學(xué)習(xí)Java的,重點(diǎn)學(xué)習(xí)什么
2、有關(guān)注哪些新的技術(shù)
3、工作任務(wù)非常多非常雜時(shí)如何處理
4、項(xiàng)目出現(xiàn)延遲如何處理
5、和同事的設(shè)計(jì)思路不一樣怎么處理
6、如何保證開發(fā)質(zhì)量
7、職業(yè)規(guī)劃是什么?短期,長期目標(biāo)是什么
8、團(tuán)隊(duì)的規(guī)劃是什么
9、能介紹下從工作到現(xiàn)在自己的成長在那里