Java面試通關要點彙總集【終極版】

樑桂釗發表於2018-03-21

原文地址:樑桂釗的部落格

部落格地址:blog.720ui.com

年前,我整理的 Java面試通關要點彙總集 獲得了很多讀者的肯定,謝謝大家支援。事實上,筆者結合自己過往的面試經驗,整理了一些核心的知識清單,試圖幫助讀者更好地回顧與複習 Java 服務端核心技術。然而還有一部分內容,筆者沒有更新上去,因為我認為和技術無關,隨著「服務端思維」知識星球的探討與解惑中,筆者覺得還是對大家有所幫助。此外,筆者還會補充一部分知識清單。因此,我重新整理一篇 Java面試通關要點彙總集【終極版】,致敬大家。

部分答案有連結,歡迎收藏與交流。

簡歷篇

基礎篇

基本功

  • 物件導向的特徵
  • final, finally, finalize 的區別
  • int 和 Integer 有什麼區別
  • 過載和重寫的區別
  • 抽象類和介面有什麼區別
  • 說說反射的用途及實現
  • 說說自定義註解的場景及實現
  • HTTP 請求的 GET 與 POST 方式的區別
  • session 與 cookie 區別
  • session 分散式處理
  • JDBC 流程
  • MVC 設計思想
  • equals 與 == 的區別

集合

  • List 和 Set 區別
  • List 和 Map 區別
  • Arraylist 與 LinkedList 區別
  • ArrayList 與 Vector 區別
  • HashMap 和 Hashtable 的區別
  • HashSet 和 HashMap 區別
  • HashMap 和 ConcurrentHashMap 的區別
  • HashMap 的工作原理及程式碼實現
  • ConcurrentHashMap 的工作原理及程式碼實現

執行緒

  • 建立執行緒的方式及實現
  • sleep() 、join()、yield()有什麼區別
  • 說說 CountDownLatch 原理
  • 說說 CyclicBarrier 原理
  • 說說 Semaphore 原理
  • 說說 Exchanger 原理
  • 說說 CountDownLatch 與 CyclicBarrier 區別
  • ThreadLocal 原理分析
  • 講講執行緒池的實現原理
  • 執行緒池的幾種方式與使用場景
  • 執行緒的生命週期

鎖機制

  • 說說執行緒安全問題
  • volatile 實現原理
  • synchronize 實現原理
  • synchronized 與 lock 的區別
  • CAS 樂觀鎖
  • ABA 問題
  • 樂觀鎖的業務場景及實現方式

核心篇

資料儲存

快取使用

訊息佇列

  • 訊息佇列的使用場景
  • 訊息的重發補償解決思路
  • 訊息的冪等性解決思路(已解答,待補充)
  • 訊息的堆積解決思路
  • 自己如何實現訊息佇列
  • 如何保證訊息的有序性

框架篇

Spring

  • BeanFactory 和 ApplicationContext 有什麼區別
  • Spring Bean 的生命週期
  • Spring IOC 如何實現
  • 說說 Spring AOP
  • Spring AOP 實現原理
  • 動態代理(cglib 與 JDK)
  • Spring 事務實現方式
  • Spring 事務底層原理
  • 如何自定義註解實現功能
  • Spring MVC 執行流程
  • Spring MVC 啟動流程
  • Spring 的單例實現原理
  • Spring 框架中用到了哪些設計模式
  • Spring 其他產品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等)

Netty

  • 為什麼選擇 Netty
  • 說說業務中,Netty 的使用場景
  • 原生的 NIO 在 JDK 1.7 版本存在 epoll bug
  • 什麼是TCP 粘包/拆包
  • TCP粘包/拆包的解決辦法
  • Netty 執行緒模型
  • 說說 Netty 的零拷貝
  • Netty 內部執行流程
  • Netty 重連實現

微服務篇

微服務

分散式

安全問題

效能優化

  • 效能指標有哪些
  • 如何發現效能瓶頸
  • 效能調優的常見手段
  • 說說你在專案中如何進行效能調優

工程篇

需求分析

  • 你如何對需求原型進行理解和拆分
  • 說說你對功能性需求的理解
  • 說說你對非功能性需求的理解
  • 你針對產品提出哪些互動和改進意見
  • 你如何理解使用者痛點

設計能力

  • 說說你在專案中使用過的 UML 圖
  • 你如何考慮元件化
  • 你如何考慮服務化
  • 你如何進行領域建模
  • 你如何劃分領域邊界
  • 說說你專案中的領域建模
  • 說說概要設計

設計模式

  • 你專案中有使用哪些設計模式
  • 說說常用開源框架中設計模式使用分析
  • 說說你對設計原則的理解
  • 23種設計模式的設計理念
  • 設計模式之間的異同,例如策略模式與狀態模式的區別
  • 設計模式之間的結合,例如策略模式+簡單工廠模式的實踐
  • 設計模式的效能,例如單例模式哪種效能更好。

業務工程

  • 你係統中的前後端分離是如何做的
  • 說說你的開發流程
  • 你和團隊是如何溝通的
  • 你如何進行程式碼評審
  • 說說你對技術與業務的理解
  • 說說你在專案中經常遇到的 Exception
  • 說說你在專案中遇到感覺最難Bug,怎麼解決的
  • 說說你在專案中遇到印象最深困難,怎麼解決的
  • 你覺得你們專案還有哪些不足的地方
  • 你是否遇到過 CPU 100% ,如何排查與解決
  • 你是否遇到過 記憶體 OOM ,如何排查與解決
  • 說說你對敏捷開發的實踐
  • 說說你對開發運維的實踐
  • 介紹下工作中的一個對自己最有價值的專案,以及在這個過程中的角色

軟實力

  • 說說你的亮點
  • 說說你最近在看什麼書
  • 說說你覺得最有意義的技術書籍
  • 說說個人發展方向方面的思考
  • 說說你認為的服務端開發工程師應該具備哪些能力
  • 說說你認為的架構師是什麼樣的,架構師主要做什麼
  • 說說你所理解的技術專家

HR

  • 你為什麼離開之前的公司
  • 你為什麼要進我們公司
  • 說說職業規劃
  • 你如何看待加班問題
  • 談一談你的一次失敗經歷
  • 你覺得你最大的優點是什麼
  • 你覺得你最大的缺點是什麼
  • 你在工作之餘做什麼事情
  • 你為什麼認為你適合這個職位
  • 你覺得自己那方面能力最急需提高
  • 你來我們公司最希望得到什麼
  • 你希望從這份工作中獲得什麼
  • 你對現在應聘的職位有什麼瞭解
  • 您還有什麼想問的
  • 你怎麼看待自己的職涯
  • 談談你的家庭情況
  • 你有什麼業餘愛好
  • 你計劃在公司工作多久

(完,轉載請註明作者及出處。)

更多精彩文章,盡在「服務端思維」微信公眾號!

Java面試通關要點彙總集【終極版】

邀請您的加入,微信掃描,加入星球。一起交流,一起成長。

Java面試通關要點彙總集【終極版】

相關文章