java面試清單和書籍推薦 五顆星五顆星
阿新 • • 發佈:2018-12-17
前言
面試必備技能清單,這裡不會詳細論述,更多的是清單列舉,羅列一些關鍵字和連結註釋。
資料結構與演算法
-
資料結構
- 紅黑樹(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
- 聚集索引,以主鍵為索引來組織資料
- MyISAM(表級鎖,不支援事務,全文索引,只讀應用)
-
索引(衡量標準: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 的原理
-
單點登入
-
參考資料
一、資料結構與演算法
包含資料結構與演算法兩部分。