基本過程:
根據類的全限定名稱加載定義類的二進制字節流。
將字節流代表的靜態存儲結構轉化爲方法區的運行時數據結構
內存中生成一個代表這個類的java.lang.Class對象,作爲方法去這個類的各種數據訪問入口
數組類本身不通過類加載器創建,由java虛擬機直接創建,數組類的元素類型由類加載器加載。
數組類的元素類型:數組去掉所有維度後的類型,
文件格式驗證:
0xCAFEBABY 魔數開頭;
主次版本號當前虛擬機可處理;
常量類型;
索引執行類型;
utf8編碼數據類型,
元數據驗證:字節碼描述信息語義分析:
是否有父類;
父類是否繼承了final修飾的類;
非抽型類是否實現了父類或接口中需要實現的方法;
類中的字段、方法的覆蓋,重載矛盾;
字節碼驗證:通過語義流及控制流分析確定程序予以的合法性,正確性,方法體分析驗證。
Java類加載基本過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
問題解決:遇到tomcat的假死問題,如何排查問題
ldx2
2020-07-08 09:08:50
maven學習系列:springboot+idea環境下,將本地jar包打包到最後的結果包裏面
ldx2
2020-07-01 22:56:08
深入思考系列——"Synchronization on a non-final field"
ldx2
2020-07-01 22:56:07
elasticsearch學習系列:開發springboot程序進行定時刪除過期索引
ldx2
2020-05-20 18:08:44
設計模式學習系列:模板方法模式的學習
ldx2
2020-05-19 05:23:54
vue學習系列:JS跨域問題的解決
ldx2
2020-05-14 11:27:07
問題解決:io.grpc.netty.shaded.io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record
ldx2
2020-05-09 16:42:15
Java學習系列:package-info.java的作用
ldx2
2020-05-09 13:08:50
kafka學習系列:消息發送確認機制,避免程序退出導致數據丟失的情況
ldx2
2020-05-09 13:08:50
Java學習系列:比較兩個文件的差異,並輸出差異的部分
ldx2
2020-05-09 13:08:50
傳智播客學面向對象的java,配置環境/常見錯誤/命名筆記
zhangriqi
2020-02-22 15:33:26
傳智播客學習java:運算符
zhangriqi
2020-02-22 15:33:26
傳智學習java系列:if & switch
zhangriqi
2020-02-22 15:33:26
傳智博客學習面向對象的java:常量/變量
zhangriqi
2020-02-22 15:33:26
初識java, 使用DOS命令行編譯和運行。
zhangriqi
2020-02-22 15:33:26