(這個部分的內容是頻率高的內容,個人覺得是因為結合了資料結構,還可以結合併發安全考。其實要通關這部分,最好就是把jdk 標準類的原始碼實現一次):
arraylist 、 linkedlist、 vector 的底層實現和區別
hashmap 和 hashtable的底層實現和區別,兩者和 concurrenthashmap 的區別。
hashmap 的 hashcode 的作用?什麼時候需要重寫?如何解決雜湊衝突?查詢的時候流程是如何?
arraylist 和 hashmap如何擴容?負載因子有什麼作用?如何保證讀寫程序安全?
treemap 、 hashmap 、 linkedhashmap 的底層實現區別。
collection 包結構的組成, map、 set 等內部介面的特點與用法。
thread 與 runable 如何實現多執行緒
生產者消費者模式的幾種實現,阻塞佇列實現, sync 關鍵字實現, lock 實現等
threadlocal 的設計理念與作用, 實現分析
記憶體洩露問題
如何使用
threadpool 用法與優勢 參考鏈結
執行緒池的底層實現和工作原理(建議寫乙個雛形簡版原始碼實現) 參考鏈結
幾個重要的執行緒 api ,interrupt , wait , sleep , stop 等等
執行緒安全問題。 hashmap 是否執行緒安全,為何不安全。 concurrenthashmap,執行緒安全,為何安全。底層實現是怎麼樣的。
j.u.c下的常見類的使用。 threadpool的深入考察; blockingqueue的使用。(take,poll的區別,put,offer的區別);原子類的實現。
各種常見鎖使用
如果上面這些掌握很好,還可以看看更深一點的 false sharing,cache line,可見性與原子性等;
io 框架主要用到什麼設計模式
nio 包有哪些結構?分別起到的作用?
nio 針對什麼情景會比 io 有更好的優化?
反射機制
string 類內部實現,能否改變string 物件內容,比較經典的 string 字面量筆試題
object 有哪些公用方法?
try catch 塊, try 裡有 return , finally也有 return ,如何執行這型別的筆試題
exception 與 error 的區別
泛型的優缺點
另外就是關注最新版本 jdk 的新特性,例如 lambda 表示式
自動記憶體管理機制, gc 演算法,執行時資料區結構,可達性分析工作原理,如何分配物件記憶體
類載入機制,反射機制,雙親委派機制,類載入器的種類
jvm 記憶體模型,先行發生原則, violate關鍵字作用
記憶體洩漏~
程序和執行緒
死鎖的必要條件,怎麼處理死鎖。
段儲存,頁儲存,段頁儲存的區別。
程序的幾種狀態和轉換
邏輯位址、實體地址的區別
程序排程演算法
程序管理(程序狀態、程序同步、程序執行緒區別、程序排程)
經典的同步問題(生產者消費者、哲學家進餐、讀者寫著)
死鎖的產生原因、必要條件、預防死鎖的方法、死鎖的檢測與解除
儲存器管理(分頁、分段、段頁式)
虛擬儲存器(請求分頁,頁面置換演算法)
osi 與 tcp/ip 各層的結構與功能,協議和作用。
tcp 與 udp 的區別。
tcp 報文結構。
tcp 的三次握手與四次揮手過程,各個狀態名稱與含義, timewait 的作用。 tcp 的三次握手過程?為什麼會採用三次握手,若採用二次握手可以嗎?
tcp 擁塞控制。
tcp 滑動視窗與回退 n 針協議。
http 的報文結構。
http 的常見狀態碼含義。
http request 的幾種型別
http1.1 和 http1.0 的區別
http 怎麼處理長連線。
cookie 與 session 的作用於原理
訪問 www.***.com ,描述一下這個過程發生什麼
socket 通訊的幾個關鍵函式
ip 位址分類
路由器與交換機區別
了解交換機、路由器、閘道器的概念,並知道各自的用途
劍指 offer
程式設計之美
cracking
程式設計師**面試指南
後續待補充
java面試 基礎知識
hashmap hashmap是基於雜湊表實現,hashmap是非執行緒安全的 concurrenthashmap 執行緒安全 hashtable 執行緒安全 1.arraylist 主要就是查詢快,刪除,插入 時間複雜度o n 比如刪除第乙個元素,那麼後面的元素就要整體向前移動,而查詢就比較簡單了...
java基礎知識 面試
函式的過載 函式的過載就是在同乙個類中允許同時存在乙個以上的同名函式,只要它們的引數個數或型別不同即可。過載函式的引數列表必須不同,要麼是引數的個數不同,要麼是引數的型別不同。過載函式的返回值型別可以相同,也可以不同。物件的比較 有兩種方式可以用於物件的比較,它是是 運算子與 equals 方法,操...
Java 面試基礎知識(四)
1.arraylist與vector的區別 1 兩者都實現了list介面,都是通過陣列實現的 vector是執行緒安全的,而arraylist非執行緒安全。2 當list增加元素時,如果它認為不夠的時候會進行擴容,vector也會,預設情況下是增加原來的一倍的陣列長度,arraylist則增加原來的...