Java開發面試題匯總整理


又是金三銀四的時候,我希望這份面試題能夠祝你一臂之力!

自我和項目相關

1、自我介紹

2、你覺得自己的優點是?你覺得自己有啥缺點?

3、你有哪些 offer?

4、你為什么要離開上家公司?你上家公司在xxx,我們公司在xxx,離這么遠為什么要選擇我們這里?

5、上家公司的同事和領導是怎么評價你的?

6、介紹下你的上家公司是做哪塊的吧

7、在上家公司你做了哪些項目?

8、你在項目中是什么角色?

9、這個項目的數據量和並發量多大?

10、這個項目用的什么技術?

11、項目過程中有遇到什么很印象深刻的問題嗎?

12、是怎么解決的這些問題?

13、項目有沒有還可以繼續優化的地方?

14、該怎么優化?有什么思路沒?

15、叫你設計一個並發xxx,數據存儲量xxx 量級的系統,你該如何設計?從你知道的點盡可能的多說出些?

Java 基礎

1、Object 對象的方法有哪些?分別有什么作用?該什么場景用?

2、Integer 的常量緩存池

3、Java 特性?什么是多態?舉個例子

4、重載重寫的區別?

5、畫下 HashMap 的結構圖?HashMap 、 HashTable 和 ConcurrentHashMap 的區別?使用場景分別是?

6、HashMap 中怎么解決沖突的?

7、ConcurrentHashMap 和 HashTable 中線程安全的區別?為啥建議用 ConcurrentHashMap ?能把 ConcurrentHashMap 里面的實現詳細的講下嗎?

8、保證線程安全的還有其他的方式嗎?

9、講下 Synchronized?

10、講下 ReentrantLock 可重入鎖? 什么是可重入鎖?為什么要設計可重入鎖?

11、Synchronized 和 ReentrantLock 有什么區別?這兩個有沒有深入了解源碼?

12、講下 Volatile 吧?他是怎樣做到同步的?

13、Volatile 為什么不支持原子性?舉個例子

14、Atomic 怎么設計的?有用過里面的類嗎?

15、線程安全類和線程不安全的類,項目使用的時候你會怎么選擇?怎么判斷項目代碼哪里會有線程不安全問題?

16、Map、List、Set 分別說下你了解到它們有的線程安全類和線程不安全的類?

17、TreeSet 清楚嗎?能詳細說下嗎?

18、ThreadLocal 了解嗎?項目有用過嗎?可以說說

19、JUC 里面你還知道什么其他的類嗎?比如 CountDownLatch、Condition

20、從源碼詳細說下 Java 里面的線程池吧,使用線程池有什么要注意的地方?你們公司有規范嗎?

JVM

1、JAVA 類加載器

2、Java 內存結構(注:不是 Java 內存模型,別搞混)

3、怎么判斷對象是否可 GC?Java 對象有哪些引用類型?有什么區別?

4、OOM 出現的有哪些場景?為什么會發生?

5、Minor GC 和 Full GC 有什么區別?分析過 GC 日志嗎?

6、說下你知道的垃圾回收算法

7、說下你知道的垃圾收集器

8、CMS 和 G1 的區別知道嗎?使用場景分別是?你項目中用的是哪個?

9、你還知道哪些 JVM 調優參數?

10、假如線上服務發生 OOM,有哪些措施可以找到問題?

11、假如線上服務 CPU 很高該怎么做?有哪些措施可以找到問題?

12、假如線上應用頻繁發生 Full GC,有哪些措施可以找到問題?

13、一般線上環境遇到 JVM 問題,你會使用哪些工具來分析?找到問題后又該如何去解決呢?

Spring

1、說下你對 Spring 生態的了解?

2、說下你對 Spring AOP 和 IOC 的理解?看過實現原理嗎?

3、說下 Bean 在 Spring 中的生命周期?

4、講下你知道的 Spring 注解有哪些?該什么場景使用?

5、Spring 事務知道嗎?有了解過嗎?

6、說下你剛才說的 SpringBoot 吧,你覺得 SpringBoot 有什么優點?

7、SpringBoot 自動化配置是怎么做的?有看過實現源碼嗎?

8、Spring Boot 中最核心的注解 SpringBootApplication 有看過源碼分析過嗎?

9、你的項目中 SpringBoot 用到了哪些和其他技術棧整合的?

10、使用 Spring 或者 SpringBoot 有遇到過什么印象深刻的問題嗎?當時是怎么解決的?

數據庫

1、你的項目使用的是什么數據庫?

2、你對數據庫了解多少?說下數據庫的索引實現和非主鍵的二級索引

3、說下 MySQL 的索引原理

4、講下 InnoDB 和 MyISAM 的區別?使用場景是?

5、有和 ElasticSearch 的索引原理對比過嗎?

6、如何判斷一個查詢 sql 語句是否使用了索引?

7、數據庫事務特性和隔離級別

8、項目數據庫表是你設計的嗎?一般要注意什么?如何考慮擴展性?

9、項目 MySQL 的數據量和並發量有多大?量大后的影響有哪些,有考慮嗎?SQL 調優有哪些技巧?

10、說下你項目里面關於數據庫印象最深的一個問題?當時是怎么解決的

其他

1、描述下網頁一個 Http 請求到 www.54tianzhisheng.cn/,到后端的整個請求過程

2、有比較過 Http 和 RPC 嗎?如果叫你設計一個高性能的 Http 或者 RPC,你會從哪些方面考慮?

3、項目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Flink 等),有深入了解它們的原理和懂點調優技巧嗎?

4、項目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Mysql 等),有深入了解它們數據同步是怎么做嗎?

5、項目中我看使用了 xxx (ElasticSearch、Hbase、Redis、Mysql 等),有深入了解它們常見的監控指標嗎?

6、如果叫你設計一個秒殺系統,你會從哪些方面考慮?

7、如果叫你設計一個電商系統,你會從哪些方面考慮?

8、如果叫你設計一個監控告警系統,你會從哪些方面考慮?

總結

本文的面試題以 HR & 技術官角度常問的面試題,技術方面從 Java 基礎、JVM、Spring、數據庫、拓展題等方面考察你,當然面試官可能還會問些其他的技術點,我一篇文章也難以概全。總的來說,還是得多准備充分,面試時靈活答辯,相信你最后能拿到滿意的 offer!加油,騷年!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM