【乾貨】Java崗面試考點大合集

本文是根據個人阿里面試經驗,爲你們整理Java程序猿面試所需的知識體系(持續更新中)。html

第一部分:計算機基礎

互聯網大廠都至關重視程序員的基本功,也就是計算機基礎知識。一個程序員能走多遠、爬多高,很大程度上取決於基本功是否紮實。對於應屆生而言,大都比較缺少實戰項目經驗,雖然會有必定的項目經驗,但這些課程設計、實驗室項目的質量與公司實際的項目有着巨大的差距。所以,基礎知識便成爲面試考量的一大重點,並且基礎紮實的程序員可塑性比較高,作什麼都能比較容易快速上手。java

計算機基礎包含以下幾門課程,相信計算機專業的同窗確定都已經學過。但互聯網公司面試的考點可能和大家期末考試的考點有一些不一樣,我都作了整理。程序員

1. 計算機網絡

大學課程中的計算機網絡通常都按照OSI七層參考模型介紹,然而因爲互聯網公司的特性,他們更加關注平常開發所涉及到的傳輸層和應用層,因此須要重點掌握傳輸層和應用層中所涉及到的全部知識點。web

考點

  • 傳輸層的做用
  • 傳輸層複用和分用的含義
  • 傳輸層和網絡層的區別
  • UDP協議的特色
  • UDP協議的報文結構
  • TCP協議的特色
  • TCP協議的報文結構
  • TCP三次握手過程
  • TCP四次揮手過程
  • TCP可靠傳輸是如何實現的
  • 中止等待協議
  • 滑動窗口協議
  • TCP的流量控制
  • TCP擁塞控制
  • HTTP協議
    • HTTP工做流程
    • HTTP請求格式
    • HTTP 1.1中的8種請求方式
    • HTTP響應格式
    • HTTP中重要的請求頭和響應頭字段
    • HTTP經常使用狀態碼及其含義
  • HTTPS協議
    • HTTPS協議與HTTP協議的區別
    • HTTPS協議的工做流程

資料整理

2. 數據結構

熟練掌握數據結構是程序員最最最基本的素養,在實際開發中選擇合適的數據結構將極大影響程序的效率。面試官通常並不會直接問數據結構的問題,而是經過出一些包含數據結構的算法題來考察你對數據結構的理解程度以及在實際項目中是否可以靈活應用。你能夠經過刷算法題來提高這部分能力,推薦《劍指offer》和《程序員面試金典》(注意是金典!)。不少公司的算法題庫都選自這兩本書。面試

固然,刷這兩本書的目的並非讓你死記硬背題目,題目變幻無窮,面試官能夠隨意改變。刷算法題最重要的是培養解決問題的思路和解決實際問題的能力。在刷題的過程當中要多多總結,再次強調,切忌死記硬背!算法

3. 算法

和數據結構同樣,算法通常也經過具體的算法題來考察,你也能夠經過刷《劍指offer》和《程序員面試金典》中的算法題來提升這方面的技能。但在刷這些算法題以前,你須要掌握幾類基礎的算法,並理解他們解決問題的思路(這纔是最爲關鍵的)。這些算法我已經在下面整理。數據庫

4. 操做系統

考點

  • 操做系統的四個特性。
  • 操做系統的主要功能。
  • 進程的有哪幾種狀態,狀態轉換圖,及致使轉換的事件。
  • 進程與線程的區別。
  • 進程通訊的幾種方式。
  • 進程同步的幾種方式
  • 用戶態和核心態的區別。
  • 死鎖的概念,致使死鎖的緣由。
  • 致使死鎖的四個必要條件。
  • 處理死鎖的四個方式。
  • 預防死鎖的方法、避免死鎖的方法。
  • 進程調度算法。
  • 內存連續分配方式採用的幾種算法及各自優劣。
  • 基本分頁儲存管理方式。
  • 基本分段儲存管理方式。
  • 分段分頁方式的比較各自優缺點。
  • 幾種頁面置換算法,會算所需換頁數
  • 虛擬內存的定義及實現方式。

資料整理

5. 數據庫

考點

  • 什麼是索引?
  • 索引的分類
  • 索引的優缺點分析
  • 什麼時候須要使用索引?什麼時候無需使用索引?
  • 什麼是事務?
  • 事務的四大特性
  • 數據庫三大範式
  • 數據庫有哪些錶鏈接?

資料整理


第二部分:Java

做爲一名合格的Java程序員,僅瞭解如何使用Java是遠遠不夠的。你可以熟練使用Java只能說明你已經成爲一名合格的碼農,可以利用Java實現某些功能。而公司做爲盈利機構,須要用最少的資源實現效益最大化,這就須要程序員具有高質量代碼的能力,而可否寫出高質量代碼取決於你對技術背後原理的理解程度。只有在理解Java背後的原理,你才能根據Java的特性,寫出更加高效的代碼。這在實際業務中是很是有價值的事情。互聯網大廠服務海量用戶,更加註重系統的性能,也更加註重程序員對原理的理解。編程

關於Java的基礎知識和如何使用,這裏我就不提了,隨便一本Java書籍都有詳細的介紹。這裏我整理了Java原理性的知識點,這些知識點將會成爲你面試的加分項。設計模式

1. Java虛擬機

考點

  • Java虛擬機內存模型特色和做用
    • 程序計數器
    • Java虛擬機棧
    • 本地方法區
    • 方法區
  • 對象建立過程
  • 對象訪問過程
  • 對象的內存結構
  • 垃圾收集算法
  • 如何斷定哪些對象須要回收?
  • 對象內存分配策略
  • 分配擔保機制
  • 垃圾收集器的比較
  • Class文件結構
  • 類加載的時機
  • 類加載過程
  • 雙親委派模型

知識點資源整理


2. Java併發編程

考點

  • 什麼是死鎖?如何避免死鎖?
  • 什麼是重排序?
  • volatile有哪些特性?
  • 什麼是內存可見性?
  • volatile爲何可以保證內存可見性?
  • 中斷機制
  • 線程通訊有哪些方式?
  • 線程池的做用?
  • ThreadPoolExecutor如何使用?
  • 如何設置線程池的大小?
  • 如何保證線程安全?
  • JDK 1.6哪些對鎖作了哪些優化?

知識點資源整理


3. Java 容器考點及資料整理


4. Java IO 考點及資料整理


5. Java其餘知識點彙總

相關文章
相關標籤/搜索