classloader 抽象類
同乙個類的來自不同classloader的子類的類會出現轉型失敗的情況,要注意。
loadclass
執行緒安全
1.findloadedclass(name) 查詢該類是否已經載入。
2.如果尚未載入,則執行3
3.判斷該類的父類是否載入,如果尚未載入,遞迴呼叫loadclass(name,false);
4.如果父類已經載入,則findbootstrapclass0();
5.如果依舊未能載入,則直接按序呼叫findclass(name);
6.最後進行resolve,檢查是否已經初始化並給出報錯資訊。(如果resolve=true ,否則不進行處理)
//原始碼
class c = findloadedclass(name);
if (c == null) else
} catch (classnotfoundexception e)
} if (resolve)
return c;
更詳細解釋:
vertx原始碼 vert x web的原始碼解析
本來應該要寫的是eventbus的原始碼分析的,但是vert.x中國使用者組 群號 515203212 的小夥伴們好像對vert.x web深入了解的需求更大一些。所以就先分析vert.x web的實現原理吧。分析完之後發現篇幅較長,請耐心看完。vert.x web主要的功能是路由,還有常用的htt...
原始碼學習 ArrayList的擴容原始碼分析
原始碼如下 下面是arraylist的擴容機制 arraylist的擴容機制提高了效能,如果每次只擴充乙個,那麼頻繁的插入會導致頻繁的拷貝,降低效能,而arraylist的擴容機制避免了這種情況。如有必要,增加此arraylist例項的容量,以確保它至少能容納元素的數量 param mincapac...
原始碼 連線mysql mysql的原始碼安裝
如果這步失敗,可以刪除掉原始碼目錄,重新解壓,然後再cmake一次試試 失敗如下圖 成功如下圖 命令 time make 注 這個過程會挺久的,取決於你機器的效能。命令 time make install 安裝成功後會生成乙個mysql56目錄,這就是我們的編譯安裝後的mysql軟體了。注意 這個軟...