項(xiàng)目介紹
大部分情況,這是一場面試的開門題齐佳,面試官問這個(gè)問題私恬,主要是考察你的概述能力和全局視野。有的人經(jīng)常抱怨自己每天在堆業(yè)務(wù)重虑,但沒有成長践付。事實(shí)上秦士,很多情況下確實(shí)在堆業(yè)務(wù)缺厉,但并不是沒有成長的。并非做中間件或者技術(shù)架構(gòu)才是成長隧土,例如我們的需求分析能力提针,溝通協(xié)作能力,產(chǎn)品思維能力曹傀,抽象建模能力等都是一個(gè)非常重要的硬實(shí)力辐脖。
好的,現(xiàn)在進(jìn)入正文皆愉。
1嗜价、明確項(xiàng)目是做什么的
2、明確項(xiàng)目的價(jià)值幕庐。(為什么做這個(gè)項(xiàng)目久锥,它解決了用戶什么痛點(diǎn),它帶來什么價(jià)值异剥?)
3瑟由、明確項(xiàng)目的功能。(這個(gè)項(xiàng)目涉及哪些功能冤寿?)
4歹苦、明確項(xiàng)目的技術(shù)青伤。(這個(gè)項(xiàng)目用到哪些技術(shù)?)
5殴瘦、明確個(gè)人在項(xiàng)目中的位置和作用狠角。(你在這個(gè)項(xiàng)目的承擔(dān)角色?)
6蚪腋、明確項(xiàng)目的整體架構(gòu)擎厢。
7、明確項(xiàng)目的優(yōu)缺點(diǎn),如果重新設(shè)計(jì)你會(huì)如何設(shè)計(jì)辣吃。
8动遭、明確項(xiàng)目的亮點(diǎn)。(這個(gè)項(xiàng)目有什么亮點(diǎn)神得?)
9厘惦、明確技術(shù)成長。(你通過這個(gè)項(xiàng)目有哪些技術(shù)成長哩簿?)
Java基礎(chǔ)
1宵蕉、List 和 Set 的區(qū)別
2、HashSet 是如何保證不重復(fù)的
3节榜、HashMap 是線程安全的嗎羡玛,為什么不是線程安全的(最好畫圖說明多線程環(huán)境下不安全)?
https://mp.weixin.qq.com/s?__biz=MzI2NjA3NTc4Ng==&mid=2652079766&idx=1&sn=879783e0b0ebf11bf1a5767933d4e61f&chksm=f1748d73c6030465fe6b9b3fa7fc816d4704c91bfe46cb287aefccee459153d3287172d91d23&scene=21#wechat_redirect
4、HashMap 的擴(kuò)容過程
5宗苍、HashMap 1.7 與 1.8 的 區(qū)別稼稿,說明 1.8 做了哪些優(yōu)化,如何優(yōu)化的讳窟?
https://blog.csdn.net/chisunhuang/article/details/79041656
6让歼、final finally finalize
7、強(qiáng)引用 丽啡、軟引用谋右、 弱引用兵迅、虛引用
8含友、Java反射 https://blog.csdn.net/lwl20140904/article/details/80163880
9、Arrays.sort 實(shí)現(xiàn)原理和 Collection 實(shí)現(xiàn)原理
http://www.reibang.com/p/4d8c6b8b9ede
10髓棋、LinkedHashMap的應(yīng)用
簡單實(shí)現(xiàn)LRU
11坑雅、cloneable接口實(shí)現(xiàn)原理
Object類中的clone()是protected的方法辈挂,在沒有重寫Object的clone()方法且沒有實(shí)現(xiàn)Cloneable接口的實(shí)例上調(diào)用clone方法,會(huì)報(bào)CloneNotSupportedException異常霞丧。
12呢岗、異常分類以及處理機(jī)制
13、wait和sleep的區(qū)別
對于sleep()方法,我們首先要知道該方法是屬于Thread類中的后豫。而wait()方法悉尾,則是屬于Object類中的。 sleep()方法導(dǎo)致了程序暫停執(zhí)行指定的時(shí)間挫酿,讓出cpu該其他線程构眯,但是他的監(jiān)控狀態(tài)依然保持者,當(dāng)指定的時(shí)間到了又會(huì)自動(dòng)恢復(fù)運(yùn)行狀態(tài)早龟。 在調(diào)用sleep()方法的過程中惫霸,線程不會(huì)釋放對象鎖。 而當(dāng)調(diào)用wait()方法的時(shí)候葱弟,線程會(huì)放棄對象鎖壹店,進(jìn)入等待此對象的等待鎖定池,只有針對此對象調(diào)用notify()方法后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲取對象鎖進(jìn)入運(yùn)行狀態(tài)芝加。
14硅卢、數(shù)組在內(nèi)存中如何分配
https://m.2cto.com/kf/201611/561021.html
Java 并發(fā)
1、synchronized 的實(shí)現(xiàn)原理以及鎖優(yōu)化藏杖?
2将塑、volatile 的實(shí)現(xiàn)原理?
3蝌麸、Java 的信號(hào)燈点寥?
4、synchronized 在靜態(tài)方法和普通方法的區(qū)別来吩?
5敢辩、怎么實(shí)現(xiàn)所有線程在等待某個(gè)事件的發(fā)生才會(huì)去執(zhí)行?
6误褪、CAS责鳍?CAS 有什么缺陷,如何解決兽间?
7、synchronized 和 lock 有什么區(qū)別正塌?
https://yq.aliyun.com/articles/640868
8嘀略、Hashtable 是怎么加鎖的 ?
9乓诽、HashMap 的并發(fā)問題帜羊?
10、ConcurrenHashMap 介紹鸠天?1.8 中為什么要用紅黑樹讼育?
11、AQS
12、如何檢測死鎖奶段?怎么預(yù)防死鎖饥瓷?
13、Java 內(nèi)存模型痹籍?
14呢铆、如何保證多線程下 i++ 結(jié)果正確?
15蹲缠、線程池的種類棺克,區(qū)別和使用場景?
16线定、分析線程池的實(shí)現(xiàn)原理和線程的調(diào)度過程娜谊?
17、線程池如何調(diào)優(yōu)斤讥,最大數(shù)目如何確認(rèn)因俐?
18、ThreadLocal原理周偎,用的時(shí)候需要注意什么抹剩?
19、CountDownLatch 和 CyclicBarrier 的用法蓉坎,以及相互之間的差別?
20澳眷、LockSupport工具
21、Condition接口及其實(shí)現(xiàn)原理
22蛉艾、Fork/Join框架的理解
23钳踊、分段鎖的原理,鎖力度減小的思考
24、八種阻塞隊(duì)列以及各個(gè)阻塞隊(duì)列的特性
Spring
https://mp.weixin.qq.com/s?__biz=MzA3MTUzOTcxOQ==&mid=2452964577&idx=1&sn=b58ceb52d68eb6c4d7265a5648750336
1勿侯、BeanFactory 和 FactoryBean拓瞪?https://blog.csdn.net/zknxx/article/details/79572387
2、Spring IOC 的理解助琐,其初始化過程祭埂?
3、BeanFactory 和 ApplicationContext兵钮?
4蛆橡、Spring Bean 的生命周期,如何被管理的掘譬?
5泰演、Spring Bean 的加載過程是怎樣的?
6葱轩、如果要你實(shí)現(xiàn)Spring AOP睦焕,請問怎么實(shí)現(xiàn)藐握?
7、如果要你實(shí)現(xiàn)Spring IOC垃喊,你會(huì)注意哪些問題猾普?
8、Spring 是如何管理事務(wù)的缔御,事務(wù)管理機(jī)制抬闷?https://blog.csdn.net/trigl/article/details/50968079
9、Spring 的不同事務(wù)傳播行為有哪些耕突,干什么用的笤成?
10、Spring 中用到了那些設(shè)計(jì)模式眷茁?
11炕泳、Spring MVC 的工作原理?
12上祈、Spring 循環(huán)注入的原理培遵?
解決方法:提前暴露
13、Spring AOP的理解登刺,各個(gè)術(shù)語籽腕,他們是怎么相互工作的?
14纸俭、Spring 如何保證 Controller 并發(fā)的安全皇耗?
Netty
1、BIO揍很、NIO和AIO
2郎楼、Netty 的各大組件
3、Netty的線程模型
4窒悔、TCP 粘包/拆包的原因及解決方法
5呜袁、了解哪幾種序列化協(xié)議?包括使用場景和如何去選擇
6简珠、Netty的零拷貝實(shí)現(xiàn)
7阶界、Netty的高性能表現(xiàn)在哪些方面
分布式相關(guān)
1、Dubbo的底層實(shí)現(xiàn)原理和機(jī)制
2北救、描述一個(gè)服務(wù)從發(fā)布到被消費(fèi)的詳細(xì)過程
3荐操、分布式系統(tǒng)怎么做服務(wù)治理
4、接口的冪等性的概念
5珍策、消息中間件如何解決消息丟失問題
http://www.reibang.com/p/8a5630e2c317?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
6、Dubbo的服務(wù)請求失敗怎么處理
7宅倒、重連機(jī)制會(huì)不會(huì)造成錯(cuò)誤
8攘宙、對分布式事務(wù)的理解
9、如何實(shí)現(xiàn)負(fù)載均衡,有哪些算法可以實(shí)現(xiàn)蹭劈?
10疗绣、Zookeeper的用途,選舉的原理是什么铺韧?
11多矮、數(shù)據(jù)的垂直拆分水平拆分。
12哈打、zookeeper原理和適用場景
13塔逃、zookeeper watch機(jī)制
14、redis/zk節(jié)點(diǎn)宕機(jī)如何處理
15料仗、分布式集群下如何做到唯一序列號(hào)
16湾盗、如何做一個(gè)分布式鎖
17、用過哪些MQ立轧,怎么用的格粪,和其他mq比較有什么優(yōu)缺點(diǎn),MQ的連接是線程安全的嗎
18氛改、MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失
19帐萎、列舉出你能想到的數(shù)據(jù)庫分庫分表策略;分庫分表后胜卤,如何解決全表查詢的問題
20疆导、zookeeper的選舉策略
21、全局ID
數(shù)據(jù)庫
1瑰艘、mysql分頁有什么優(yōu)化
2是鬼、悲觀鎖、樂觀鎖
3紫新、組合索引均蜜,最左原則
4、mysql 的表鎖芒率、行鎖 https://blog.csdn.net/soonfly/article/details/70238902
5囤耳、mysql 性能優(yōu)化
6、mysql的索引分類:B+偶芍,hash充择;什么情況用什么索引
7、事務(wù)的特性和隔離級別
緩存
https://my.oschina.net/demons99/blog/1936821
1匪蟀、Redis用過哪些數(shù)據(jù)數(shù)據(jù)椎麦,以及Redis底層怎么實(shí)現(xiàn)
2、Redis緩存穿透材彪,緩存雪崩
3观挎、如何使用Redis來實(shí)現(xiàn)分布式鎖
4琴儿、Redis的并發(fā)競爭問題如何解決
5、Redis持久化的幾種方式嘁捷,優(yōu)缺點(diǎn)是什么造成,怎么實(shí)現(xiàn)的
6、Redis的緩存失效策略
7雄嚣、Redis集群晒屎,高可用,原理
8缓升、Redis緩存分片
9鼓鲁、Redis的數(shù)據(jù)淘汰策略
JVM
https://my.oschina.net/demons99/blog/1936827
1、詳細(xì)jvm內(nèi)存模型
2仔沿、講講什么情況下回出現(xiàn)內(nèi)存溢出坐桩,內(nèi)存泄漏?
3封锉、說說Java線程棧
4绵跷、JVM 年輕代到年老代的晉升過程的判斷條件是什么呢?
5成福、JVM 出現(xiàn) fullGC 很頻繁碾局,怎么去線上排查問題?
6奴艾、類加載為什么要使用雙親委派模式净当,有沒有什么場景是打破了這個(gè)模式?
7蕴潦、類的實(shí)例化順序
8像啼、JVM垃圾回收機(jī)制,何時(shí)觸發(fā)MinorGC等操作
9潭苞、JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的
10忽冻、各種回收器,各自優(yōu)缺點(diǎn)此疹,重點(diǎn)CMS僧诚、G1
11、各種回收算法
12蝗碎、OOM錯(cuò)誤湖笨,stackoverflow錯(cuò)誤,permgen space錯(cuò)誤