跳槽時時刻刻都在發(fā)生草姻,但是我建議大家跳槽之前,先想清楚為什么要跳槽氛改。切不可跟風(fēng)帐萎,看到同事一個個都走了,自己也盲目的開始面試起來(期間也沒有準(zhǔn)備充分)胜卤,到底是因為技術(shù)原因(影響自己的發(fā)展疆导,偏移自己規(guī)劃的軌跡),還是錢給少了葛躏,不受重視澈段。
準(zhǔn)備不充分的面試,完全是浪費時間舰攒,更是對自己的不負(fù)責(zé)(如果title很高均蜜,當(dāng)我沒說)。
今天給大家分享下chenssy在這次跳槽中整理的Java面試大綱芒率,其中大部分都是面試過程中的面試題囤耳,可以對照這查漏補(bǔ)缺,當(dāng)然了偶芍,這里所列的肯定不可能覆蓋全部方式充择。
項目介紹
大部分情況,這是一場面試的開門題匪蟀,面試官問這個問題椎麦,主要是考察你的概述能力和全局視野。有的人經(jīng)常抱怨自己每天在堆業(yè)務(wù)材彪,但沒有成長观挎。事實上琴儿,很多情況下確實在堆業(yè)務(wù),但并不是沒有成長的嘁捷。并非做中間件或者技術(shù)架構(gòu)才是成長造成,例如我們的需求分析能力,溝通協(xié)作能力雄嚣,產(chǎn)品思維能力晒屎,抽象建模能力等都是一個非常重要的硬實力。
好的缓升,現(xiàn)在進(jìn)入正文鼓鲁。
1、明確項目是做什么的
2港谊、明確項目的價值骇吭。(為什么做這個項目,它解決了用戶什么痛點歧寺,它帶來什么價值绵跷?)
3、明確項目的功能成福。(這個項目涉及哪些功能碾局?)
4、明確項目的技術(shù)奴艾。(這個項目用到哪些技術(shù)净当?)
5、明確個人在項目中的位置和作用蕴潦。(你在這個項目的承擔(dān)角色像啼?)
6、明確項目的整體架構(gòu)潭苞。
7忽冻、明確項目的優(yōu)缺點,如果重新設(shè)計你會如何設(shè)計。
8此疹、明確項目的亮點僧诚。(這個項目有什么亮點?)
9蝗碎、明確技術(shù)成長湖笨。(你通過這個項目有哪些技術(shù)成長?)
Java基礎(chǔ)
1蹦骑、List 和 Set 的區(qū)別
2慈省、HashSet 是如何保證不重復(fù)的
3、HashMap 是線程安全的嗎眠菇,為什么不是線程安全的(最好畫圖說明多線程環(huán)境下不安全)?
4边败、HashMap 的擴(kuò)容過程
5袱衷、HashMap 1.7 與 1.8 的 區(qū)別,說明 1.8 做了哪些優(yōu)化笑窜,如何優(yōu)化的致燥?
6、final finally finalize
7怖侦、強(qiáng)引用 、軟引用谜叹、 弱引用匾寝、虛引用
8、Java反射
9荷腊、Arrays.sort 實現(xiàn)原理和 Collection 實現(xiàn)原理
10艳悔、LinkedHashMap的應(yīng)用
11、cloneable接口實現(xiàn)原理
12女仰、異常分類以及處理機(jī)制
13猜年、wait和sleep的區(qū)別
14、數(shù)組在內(nèi)存中如何分配
Java 并發(fā)
1疾忍、synchronized 的實現(xiàn)原理以及鎖優(yōu)化乔外?
2、volatile 的實現(xiàn)原理一罩?
3杨幼、Java 的信號燈?
4聂渊、synchronized 在靜態(tài)方法和普通方法的區(qū)別差购?
5、怎么實現(xiàn)所有線程在等待某個事件的發(fā)生才會去執(zhí)行汉嗽?
6欲逃、CAS?CAS 有什么缺陷饼暑,如何解決稳析?
7、synchronized 和 lock 有什么區(qū)別弓叛?
8迈着、Hashtable 是怎么加鎖的 ?
9邪码、HashMap 的并發(fā)問題裕菠?
10、ConcurrenHashMap 介紹闭专?1.8 中為什么要用紅黑樹奴潘?
11旧烧、AQS
12、如何檢測死鎖画髓?怎么預(yù)防死鎖掘剪?
13、Java 內(nèi)存模型奈虾?
14夺谁、如何保證多線程下 i++ 結(jié)果正確?
15肉微、線程池的種類匾鸥,區(qū)別和使用場景?
16碉纳、分析線程池的實現(xiàn)原理和線程的調(diào)度過程勿负?
17、線程池如何調(diào)優(yōu)劳曹,最大數(shù)目如何確認(rèn)奴愉?
18、ThreadLocal原理铁孵,用的時候需要注意什么锭硼?
19、CountDownLatch 和 CyclicBarrier 的用法蜕劝,以及相互之間的差別?
20账忘、LockSupport工具
21、Condition接口及其實現(xiàn)原理
22熙宇、Fork/Join框架的理解
23鳖擒、分段鎖的原理,鎖力度減小的思考
24、八種阻塞隊列以及各個阻塞隊列的特性
Spring
1烫止、BeanFactory 和 FactoryBean蒋荚?
2、Spring IOC 的理解馆蠕,其初始化過程期升?
3、BeanFactory 和 ApplicationContext互躬?
4播赁、Spring Bean 的生命周期,如何被管理的吼渡?
5容为、Spring Bean 的加載過程是怎樣的?
6、如果要你實現(xiàn)Spring AOP坎背,請問怎么實現(xiàn)替劈?
7、如果要你實現(xiàn)Spring IOC得滤,你會注意哪些問題陨献?
8、Spring 是如何管理事務(wù)的懂更,事務(wù)管理機(jī)制眨业?
9、Spring 的不同事務(wù)傳播行為有哪些沮协,干什么用的龄捡?
10、Spring 中用到了那些設(shè)計模式皂股?
11墅茉、Spring MVC 的工作原理命黔?
12呜呐、Spring 循環(huán)注入的原理?
13悍募、Spring AOP的理解蘑辑,各個術(shù)語,他們是怎么相互工作的坠宴?
14洋魂、Spring 如何保證 Controller 并發(fā)的安全?
Netty
1喜鼓、BIO副砍、NIO和AIO
2、Netty 的各大組件
3庄岖、Netty的線程模型
4豁翎、TCP 粘包/拆包的原因及解決方法
5、了解哪幾種序列化協(xié)議隅忿?包括使用場景和如何去選擇
6心剥、Netty的零拷貝實現(xiàn)
7、Netty的高性能表現(xiàn)在哪些方面
分布式相關(guān)
1背桐、Dubbo的底層實現(xiàn)原理和機(jī)制
2优烧、描述一個服務(wù)從發(fā)布到被消費的詳細(xì)過程
3、分布式系統(tǒng)怎么做服務(wù)治理
4链峭、接口的冪等性的概念
5畦娄、消息中間件如何解決消息丟失問題
6、Dubbo的服務(wù)請求失敗怎么處理
7、重連機(jī)制會不會造成錯誤
8纷责、對分布式事務(wù)的理解
9捍掺、如何實現(xiàn)負(fù)載均衡,有哪些算法可以實現(xiàn)再膳?
10挺勿、Zookeeper的用途,選舉的原理是什么喂柒?
11不瓶、數(shù)據(jù)的垂直拆分水平拆分。
12灾杰、zookeeper原理和適用場景
13蚊丐、zookeeper watch機(jī)制
14、redis/zk節(jié)點宕機(jī)如何處理
15艳吠、分布式集群下如何做到唯一序列號
16麦备、如何做一個分布式鎖
17、用過哪些MQ昭娩,怎么用的凛篙,和其他mq比較有什么優(yōu)缺點,MQ的連接是線程安全的嗎
18栏渺、MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失
19呛梆、列舉出你能想到的數(shù)據(jù)庫分庫分表策略;分庫分表后磕诊,如何解決全表查詢的問題
20填物、zookeeper的選舉策略
21、全局ID
數(shù)據(jù)庫
1霎终、mysql分頁有什么優(yōu)化
2滞磺、悲觀鎖、樂觀鎖
3莱褒、組合索引击困,最左原則
4、mysql 的表鎖保礼、行鎖
5沛励、mysql 性能優(yōu)化
6、mysql的索引分類:B+炮障,hash目派;什么情況用什么索引
7、事務(wù)的特性和隔離級別
緩存
1胁赢、Redis用過哪些數(shù)據(jù)數(shù)據(jù)企蹭,以及Redis底層怎么實現(xiàn)
2、Redis緩存穿透,緩存雪崩
3谅摄、如何使用Redis來實現(xiàn)分布式鎖
4徒河、Redis的并發(fā)競爭問題如何解決
5、Redis持久化的幾種方式送漠,優(yōu)缺點是什么顽照,怎么實現(xiàn)的
6、Redis的緩存失效策略
7闽寡、Redis集群代兵,高可用,原理
8爷狈、Redis緩存分片
9植影、Redis的數(shù)據(jù)淘汰策略
JVM
1、詳細(xì)jvm內(nèi)存模型
2涎永、講講什么情況下回出現(xiàn)內(nèi)存溢出思币,內(nèi)存泄漏?
3羡微、說說Java線程棧
4谷饿、JVM 年輕代到年老代的晉升過程的判斷條件是什么呢?
5拷淘、JVM 出現(xiàn) fullGC 很頻繁各墨,怎么去線上排查問題指孤?
6启涯、類加載為什么要使用雙親委派模式,有沒有什么場景是打破了這個模式恃轩?
7结洼、類的實例化順序
8、JVM垃圾回收機(jī)制叉跛,何時觸發(fā)MinorGC等操作
9松忍、JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的
10、各種回收器筷厘,各自優(yōu)缺點鸣峭,重點CMS、G1
11酥艳、各種回收算法
12摊溶、OOM錯誤,stackoverflow錯誤充石,permgen space錯誤
想學(xué)習(xí)更多更詳細(xì)的知識的莫换,在此我向大家推薦一個交流學(xué)習(xí)群:744642380 里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析拉岁,高并發(fā)坷剧、高性能、分布式喊暖、微服務(wù)架構(gòu)的原理惫企,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費的學(xué)習(xí)資源陵叽,目前受益良多