Java面試基礎知識提綱

2021-07-16 22:38:03 字數 2232 閱讀 2397

(這個部分的內容是頻率高的內容,個人覺得是因為結合了資料結構,還可以結合併發安全考。其實要通關這部分,最好就是把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則增加原來的...