1. 程式人生 > >java面試清單和書籍推薦 五顆星五顆星

java面試清單和書籍推薦 五顆星五顆星

前言

面試必備技能清單,這裡不會詳細論述,更多的是清單列舉,羅列一些關鍵字和連結註釋。

資料結構與演算法

  • 資料結構

    • 紅黑樹(5點特性)
  • 思維拓展

    • 一堆字串求出現次數最多的字串

Java

  • Java 基礎部分

  • Java 集合框架
    • ArrayList 與 LinkedList
    • Hashtable、Hashmap 與 ConcurrentHashmap
  • Java 併發程式設計
    • 執行緒狀態
      • 新建、可執行(執行和就緒)、阻塞、無限期等待、限期等待、死亡
    • 實現執行緒三種方式(繼承Thread,實現 Runnable 介面,實現 Callable 介面)
    • 併發兩個關鍵問題
      • 執行緒通訊
      • 執行緒同步
    • volatile 和 synchronized
    • lock 和 synchronized
    • Java記憶體模型(JMM),解決併發中的可見性,原子性,有序性問題
  • Java IO
    • 序列化
    • AIO、BIO、NIO
  • Java 虛擬機器
    • 執行時資料區
  • Java 設計模式
    • 單例模式
    • 工廠模式

Java Web

  • Spring
    • IOC
    • AOP
    • DI
  • SpringMVC
    • 執行流程
  • MyBatis

資料庫

  • 儲存引擎

    • MyISAM(表級鎖,不支援事務,全文索引,只讀應用)
      • .frm / .myd / .myi
      • 非聚集索引
    • InnoDB(行級鎖,最大支援併發,事務,表更新和查詢都相當的頻繁)
      • .frm / .ibd
      • 聚集索引,以主鍵為索引來組織資料
  • 索引(衡量標準:IO漸進複雜度)

    • Hash(衝突,無法做範圍查詢)
    • FullText(全文搜尋,優化:字首索引)
    • R-Tree(空間索引,附近三公里的資料怎麼查詢)
    • B+ Tree(B Tree:每個key、data資訊存在結點,B+ Tree存在葉子節點)
  • 哪些情況下不會使用索引

    • 全表掃描更快
    • 條件中有or
    • 不是複合索引的第一部分
    • like以%開始
  • 隔離級別

    • 序列化
    • 可重複讀
    • 讀已提交
    • 讀未提交
  • Redis 資料型別

    • String:字串
    • Hash:字典
    • List:連結串列
    • Set:集合
    • Sorted Set:有序集合

作業系統

  • 程序和執行緒的區別

    • 資源、排程、開銷、通訊 4個方面來對比
  • 執行緒間通訊

    • synchronized
    • while輪詢
    • wait() / notify()
    • 管道
  • 程序通訊

    • 直接通訊
    • 間接通訊

計算機網路

  • 應用層

    • HTTP請求和響應報文
  • 傳輸層

    • 為什麼三次握手,兩次不行嗎
    • 四次揮手 TimeWait 作用
    • TCP可靠傳輸

分散式

  • 分散式通訊協議

    • http
    • https
    • RESTful API
  • 分散式鎖

專案

  • 掃碼登入原理

  • Cookie 和 Session 的原理

  • 單點登入

  • 參考資料

一、資料結構與演算法

包含資料結構與演算法兩部分。