導航:首頁 > 編程語言 > java初始化載入

java初始化載入

發布時間:2025-08-09 14:05:40

java中類載入器是怎麼工作的

JVM將類載入過程分為三個步驟:裝載(Load),鏈接(Link)和初始化(Initialize)
鏈接又分為三個步驟,驗證、准備、解析
1) 裝載:查找並載入類的二進制數據;
2)鏈接:
驗證:確保被載入類的正確性;
准備:為類的靜態變數分配內存,並將其初始化為默認值;
解析:把類中的符號引用轉換為直接引用;
3)初始化:為類的靜態變數賦予正確的初始值;
那為什麼我要有驗證這一步驟呢?首先如果由編譯器生成的class文件,它肯定是符合JVM位元組碼格式的,但是萬一有高手自己寫一個class文件,讓JVM載入並運行,用於惡意用途,就不妙了,因此這個class文件要先過驗證這一關,不符合的話不會讓它繼續執行的,也是為了安全考慮吧。
准備階段和初始化階段看似有點牟盾,其實是不牟盾的,如果類中有語句:private static int a = 10,它的執行過程是這樣的,首先位元組碼文件被載入到內存後,先進行鏈接的驗證這一步驟,驗證通過後准備階段,給a分配內存,因為變數a是static的,所以此時a等於int類型的默認初始值0,即a=0,然後到解析(後面在說),到初始化這一步驟時,才把a的真正的值10賦給a,此時

閱讀全文

與java初始化載入相關的資料

熱點內容
做程序員很傷視力嗎 瀏覽:701
命令牌怎麼命令 瀏覽:812
凸包問題的分治演算法 瀏覽:810
如何發布python程序 瀏覽:961
sm9演算法公開了嗎 瀏覽:597
手機觸摸屏單片機 瀏覽:336
gcc用的什麼匯編編譯器 瀏覽:789
如何添加各個國家的伺服器 瀏覽:164
android源碼大小 瀏覽:236
把字體移出字體文件夾 瀏覽:474
正品的溯源碼燕碎多少錢一克 瀏覽:509
以命令行方式啟動 瀏覽:294
app在哪裡找連接 瀏覽:520
pythonimagemode 瀏覽:75
單片機dbyte是什麼類型 瀏覽:189
python寫作模塊 瀏覽:501
加密視頻提取52破解 瀏覽:438
python獲取京東數據 瀏覽:10
androidstudio顏色代碼 瀏覽:350
親子周末app怎麼樣 瀏覽:478