面試題彙總

java類加載過程

1.編譯
即把我們寫好的java文件,通過javac命令編譯成字節碼,也就是我們常說的.class文件。
2.加載
指的是把class字節碼文件從各個來源通過類加載器裝載入內存中。
3.驗證
主要是爲了保證加載進來的字節流符合虛擬機規範,不會造成安全錯誤。格式符號引用等
4.準備
主要是爲類變量(注意,不是實例變量)分配內存,並且賦予初值,比如默認值
5.解析
將常量池內的符號引用替換爲直接引用的過程。
舉個例子來說,現在調用方法hello(),這個方法的地址是1234567,那麼hello就是符號引用,1234567就是直接引用。
6.初始化
這個階段主要是對類變量初始化,是執行類構造器的過程。
只對static修飾的變量或語句進行初始化
如果初始化一個類的時候,其父類尚未初始化,則優先初始化其父類。
如果同時包含多個靜態變量和靜態代碼塊,則按照自上而下的順序依次執行

數據庫實現原理

索引形成一顆B樹,方便插入刪除搜索

b-樹:

m階 根節點的子節點範圍在2-m個
其餘結點範圍在m/2-m個
每個節點關鍵字範圍1-m-1個
所有的終端節點在同一層。

b+樹

和b-樹的區別
1.每個節點有k個關鍵字必然有K個子節點
2.非終端節點只具有索引作用,數據信息僅存放在葉節點上
3.所有的葉子結點構成一個鏈表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章