跳槽時時刻刻都在發生,但是我建議大家跳槽之前,先想清楚爲什麼要跳槽。切不可跟風,看到同事一個個都走了,自己也盲目的開始面試起來(期間也沒有準備充分),到底是因爲技術原因(影響自己的發展,偏移自己規劃的軌跡),還是錢給少了,不受重視。
準備不充分的面試,完全是浪費時間,更是對自己的不負責(如果title很高,當我沒說)。
今天給大家分享下chenssy在這次跳槽中整理的Java面試大綱,其中大部分都是面試過程中的面試題,可以對照這查漏補缺,當然了,這裏所列的肯定不可能覆蓋全部方式。
項目介紹
大部分情況,這是一場面試的開門題,面試官問這個問題,主要是考察你的概述能力和全局視野。有的人經常抱怨自己每天在堆業務,但沒有成長。事實上,很多情況下確實在堆業務,但並不是沒有成長的。並非做中間件或者技術架構纔是成長,例如我們的需求分析能力,溝通協作能力,產品思維能力,抽象建模能力等都是一個非常重要的硬實力。
好的,現在進入正文。
- 1、明確項目是做什麼的
- 2、明確項目的價值。(爲什麼做這個項目,它解決了用戶什麼痛點,它帶來什麼價值?)
- 3、明確項目的功能。(這個項目涉及哪些功能?)
- 4、明確項目的技術。(這個項目用到哪些技術?)
- 5、明確個人在項目中的位置和作用。(你在這個項目的承擔角色?)
- 6、明確項目的整體架構。
- 7、明確項目的優缺點,如果重新設計你會如何設計。
- 8、明確項目的亮點。(這個項目有什麼亮點?)
- 9、明確技術成長。(你通過這個項目有哪些技術成長?)
Java基礎
- 1、List 和 Set 的區別
- 2、HashSet 是如何保證不重複的
- 3、HashMap 是線程安全的嗎,爲什麼不是線程安全的(最好畫圖說明多線程環境下不安全)?
- 4、HashMap 的擴容過程
- 5、HashMap 1.7 與 1.8 的 區別,說明 1.8 做了哪些優化,如何優化的?
- 6、final finally finalize
- 7、強引用 、軟引用、 弱引用、虛引用
- 8、Java反射
- 9、Arrays.sort 實現原理和 Collection 實現原理
- 10、LinkedHashMap的應用
- 11、cloneable接口實現原理
- 12、異常分類以及處理機制
- 13、wait和sleep的區別
- 14、數組在內存中如何分配
Java 併發
- 1、synchronized 的實現原理以及鎖優化?
- 2、volatile 的實現原理?
- 3、Java 的信號燈?
- 4、synchronized 在靜態方法和普通方法的區別?
- 5、怎麼實現所有線程在等待某個事件的發生纔會去執行?
- 6、CAS?CAS 有什麼缺陷,如何解決?
- 7、synchronized 和 lock 有什麼區別?
- 8、Hashtable 是怎麼加鎖的 ?
- 9、HashMap 的併發問題?
- 10、ConcurrenHashMap 介紹?1.8 中爲什麼要用紅黑樹?
- 11、AQS
- 12、如何檢測死鎖?怎麼預防死鎖?
- 13、Java 內存模型?
- 14、如何保證多線程下 i++ 結果正確?
- 15、線程池的種類,區別和使用場景?
- 16、分析線程池的實現原理和線程的調度過程?
- 17、線程池如何調優,最大數目如何確認?
- 18、ThreadLocal原理,用的時候需要注意什麼?
- 19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之間的差別?
- 20、LockSupport工具
- 21、Condition接口及其實現原理
- 22、Fork/Join框架的理解
- 23、分段鎖的原理,鎖力度減小的思考
- 24、八種阻塞隊列以及各個阻塞隊列的特性
Spring
- 1、BeanFactory 和 FactoryBean?
- 2、Spring IOC 的理解,其初始化過程?
- 3、BeanFactory 和 ApplicationContext?
- 4、Spring Bean 的生命週期,如何被管理的?
- 5、Spring Bean 的加載過程是怎樣的?
- 6、如果要你實現Spring AOP,請問怎麼實現?
- 7、如果要你實現Spring IOC,你會注意哪些問題?
- 8、Spring 是如何管理事務的,事務管理機制?
- 9、Spring 的不同事務傳播行爲有哪些,幹什麼用的?
- 10、Spring 中用到了那些設計模式?
- 11、Spring MVC 的工作原理?
- 12、Spring 循環注入的原理?
- 13、Spring AOP的理解,各個術語,他們是怎麼相互工作的?
- 14、Spring 如何保證 Controller 併發的安全?
Netty
- 1、BIO、NIO和AIO
- 2、Netty 的各大組件
- 3、Netty的線程模型
- 4、TCP 粘包/拆包的原因及解決方法
- 5、瞭解哪幾種序列化協議?包括使用場景和如何去選擇
- 6、Netty的零拷貝實現
- 7、Netty的高性能表現在哪些方面
分佈式相關
- 1、Dubbo的底層實現原理和機制
- 2、描述一個服務從發佈到被消費的詳細過程
- 3、分佈式系統怎麼做服務治理
- 4、接口的冪等性的概念
- 5、消息中間件如何解決消息丟失問題
- 6、Dubbo的服務請求失敗怎麼處理
- 7、重連機制會不會造成錯誤
- 8、對分佈式事務的理解
- 9、如何實現負載均衡,有哪些算法可以實現?
- 10、Zookeeper的用途,選舉的原理是什麼?
- 11、數據的垂直拆分水平拆分。
- 12、zookeeper原理和適用場景
- 13、zookeeper watch機制
- 14、redis/zk節點宕機如何處理
- 15、分佈式集羣下如何做到唯一序列號
- 16、如何做一個分佈式鎖
- 17、用過哪些MQ,怎麼用的,和其他mq比較有什麼優缺點,MQ的連接是線程安全的嗎
- 18、MQ系統的數據如何保證不丟失
- 19、列舉出你能想到的數據庫分庫分表策略;分庫分表後,如何解決全表查詢的問題
- 20、zookeeper的選舉策略
- 21、全局ID
數據庫
- 1、mysql分頁有什麼優化
- 2、悲觀鎖、樂觀鎖
- 3、組合索引,最左原則
- 4、mysql 的表鎖、行鎖
- 5、mysql 性能優化
- 6、mysql的索引分類:B+,hash;什麼情況用什麼索引
- 7、事務的特性和隔離級別
緩存
- 1、Redis用過哪些數據數據,以及Redis底層怎麼實現
- 2、Redis緩存穿透,緩存雪崩
- 3、如何使用Redis來實現分佈式鎖
- 4、Redis的併發競爭問題如何解決
- 5、Redis持久化的幾種方式,優缺點是什麼,怎麼實現的
- 6、Redis的緩存失效策略
- 7、Redis集羣,高可用,原理
- 8、Redis緩存分片
- 9、Redis的數據淘汰策略
JVM
- 1、詳細jvm內存模型
- 2、講講什麼情況下回出現內存溢出,內存泄漏?
- 3、說說Java線程棧
- 4、JVM 年輕代到年老代的晉升過程的判斷條件是什麼呢?
- 5、JVM 出現 fullGC 很頻繁,怎麼去線上排查問題?
- 6、類加載爲什麼要使用雙親委派模式,有沒有什麼場景是打破了這個模式?
- 7、類的實例化順序
- 8、JVM垃圾回收機制,何時觸發MinorGC等操作
- 9、JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的
- 10、各種回收器,各自優缺點,重點CMS、G1
- 11、各種回收算法
- 12、OOM錯誤,stackoverflow錯誤,permgen space錯誤
以上問題的答案解析
2020最新BATJava必考面試題集錦
2020最新BAT大數據必考面試題集錦
Java後端面試題及答案
Spring面試題
SpringMVC面試題
SpringBoot面試題
SPringCloud面試題
Tomcat面試題
併發編程面試題
多線程面試題
MySQL55問
樂觀鎖和悲觀鎖面試題
Redis面試題
Kafka面試題
Zookeeper面試題
MyBatis
Nginx面試題
MongoDB
面試題目錄彙總
如何獲取?
轉發這篇文章,關注我,私信回覆“ 面試文檔”即可獲取高清大綱,以上 spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構面試資料
如何私信?
關注我後,在手機,點進我的主頁,主頁上方右上角有個私信,點擊私信,如何回覆關鍵字“面試文檔”即可