Java面試重點(不斷更新)
阿新 • • 發佈:2019-02-13
Java基礎
- Java記憶體模型
- 多型(過載重寫)
- object方法
- 類訪問許可權
- sleep、notify、wait 聯絡、區別
- String、stringbuffer、stringbuilder 聯絡、區別、原始碼
- volatile 原理、原始碼、與syn區別
- 執行緒實現的三種方式(繼承、Runnable、Callable)
- 執行緒間通訊方式(wait/notify 、await/signal) :
集合框架
List
三者區別,聯絡,原始碼
Set
- HashSet
- LinkedHashSet
- TreeSet
基於什麼實現,內部資料結構,適用場景,原始碼
Map
- weakHashMao
- LinkedHashMap
- TreeMap
HashMap與hashtable的區別
內部實現原理、原始碼、適用場景
併發包
ConcurrentHashMap
ReentantLock
- 與syn的區別、好處、場景
Condition
- 與wait、notify的區別、好處
Executors
- 執行緒池種類、各個作用、適用場景
ThreadPoolExecutor
CopyOnWriteArrayList (set)
- 什麼情況加鎖、什麼情況不加鎖、適用場景
ArrayblockingQueue (Linked)
- 兩者區別,take、put、offer、poll方法原理、原始碼
AtomicInteger (long boolean)
- 功能
CountDownLatch
- 功能、場景
CyclicBarrier
- 功能、場景
Semaphore
- 好處、場景
FutureTask (Callable)
- 原始碼、場景
ReentrantReadWriteLock
- 讀寫分離的好處、適用場景、原始碼
JDK8
- Lamda表示式
- stream
虛擬機器
JVM五大區
- 每個區的儲存、作用
JVM記憶體模型
垃圾收集器
- 常用gc演算法
- 收集器種類、適用場景
- fullGC、MinorGC觸發條件
JVM優化
- 日誌查詢
- 各項引數設定
- 四種引用
IO流
BIO
- 位元組流:型別、適用場景
- 字元流:型別、適用場景
NIO
- 型別、適用場景
- 三大元件的聯絡、使用
- 記憶體情況
資料庫
主從複製
- 原理、實現
讀寫分離
- 原理、實現
事務
資料庫鎖
MVCC
儲存引擎
- InnoDB
- MyISAM
- 區別、聯絡、鎖機制、適用場景
索引
SQL優化
WEB
Tomcat
Servlet
- 生命週期
- 三種實現方式
springMVC
spring
mybatis
- 使用
- #、$區別
- 一級、二級快取
設計模式
- 單例模式
- 工廠模式
- 觀察者模式
- 介面卡模式
- 模版方法模式
- 策略模式
- 責任鏈模式
- 裝飾者模式
- 常用的八種掌握就行,原理,使用
- 單例、工廠、觀察者重點
資料結構
二叉樹
- 平衡二叉樹
- 二叉查詢樹
- 紅黑樹
- 完全二叉樹
- 滿二叉樹
概念、適用場景、時間複雜度、好處壞處
B樹
兩者的聯絡、區別、適用場景
演算法
排序演算法
- 直接插入排序
- 二分插入排序
- 希爾插入排序
- 氣泡排序
- 快排
- 選擇排序
- 堆排序
- 歸併排序
- 各種排序的思想
- 實現複雜度
- 穩定性如何
- 可以手寫
動態規劃
貪心演算法
網路
TCP
- 三次握手、四次揮手、各種狀態、狀態改變
- 和UDP的區別
IO模型
- 同步、非同步、阻塞、非阻塞概念
- 模型種類、各自特點、適用場景
- 如何使用
分散式
一致性演算法
- 2PC
- 3PC
- Paxos
- Raft
分散式鎖
- 資料庫鎖實現
- 快取實現
- Zookeeper實現
中介軟體
- 快取
- 訊息佇列
- Zookeeper
Linux基礎
- 常用命令
- 管道符
- 檢視日誌相關命令
- CPU使用命令