2019年最新Java程序員面試常見試題彙總

2019年最新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!加油,騷年!

文章來自:https://www.itjmd.com/news/show-6386.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章