真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java類加載過程是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了Java類加載過程是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比孝感網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式孝感網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋孝感地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

Java文件從編碼到完成最終執(zhí)行的過程:

  1. 編譯:Javac 把Java文件編譯成.class文件
  2. 運(yùn)行:把.class文件交給JVM運(yùn)行
類的加載過程

JVM虛擬機(jī)把.class文件中類信息加載進(jìn)內(nèi)存,并進(jìn)行解析生成對應(yīng)的class對象的過程。JVM不是一開始就把所有的類都加載進(jìn)內(nèi)存中,而是只有第一次遇到某個需要運(yùn)行的類時才會加載,且只加載一次。

Java類加載過程是什么

加載

把class字節(jié)碼文件從各個來源通過類加載器裝載入內(nèi)存中
JVM要完成三件事

  1. 通過一個類的全限定名來獲取定義此類的二進(jìn)制字節(jié)流。
  2. 靜態(tài)存儲結(jié)構(gòu)- > 方法區(qū)的運(yùn)行時數(shù)據(jù)結(jié)構(gòu)
  3. 在Java堆中生成對應(yīng)類的java.lang.Class對象,作為方法區(qū)訪問這些數(shù)據(jù)的訪問入口。

類加載器

  • 啟動類加載器
  • 擴(kuò)展類加載器
  • 應(yīng)用類加載器
  • 自定義類加載器
連接

將java類的二進(jìn)制代碼合并到JVM的運(yùn)行狀態(tài)之中的過程

驗(yàn)證

保證加載進(jìn)來的字節(jié)流符合虛擬機(jī)規(guī)范,不會造成安全錯誤

驗(yàn)證分類

  • 文件格式的驗(yàn)證,比如常量中是否有不被支持的常量?文件中是否有不規(guī)范的或者附加的其他信息
  • 元數(shù)據(jù)的驗(yàn)證,比如該類是否繼承了被final修飾的類?類中的字段,方法是否與父類沖突?是否出現(xiàn)了不合理的重載?
  • 字節(jié)碼的驗(yàn)證,保證程序語義的合理性,比如要保證類型轉(zhuǎn)換的合理性。
  • 符號引用的驗(yàn)證,比如校驗(yàn)符號引用中通過全限定名是否能夠找到對應(yīng)的類?校驗(yàn)符號引用中的訪問性(private,public等)是否可被當(dāng)前類訪問?
準(zhǔn)備

為類變量(注意,不是實(shí)例變量)分配內(nèi)存,并且賦予初值(Java虛擬機(jī)根據(jù)不同變量類型的默認(rèn)初始值)

默認(rèn)初始值

  • 8種基本類型的初值,默認(rèn)為0
  • 引用類型的初值則為null
  • 常量的初值即為代碼中設(shè)置的值
  • final static tmp = 456
解析

常量池內(nèi)的符號引用替換為直接引用的過程

符號引用:一個字符串,但是這個字符串給出了一些能夠唯一性識別一個方法,一個變量,一個類的相關(guān)信息

直接引用:可以理解為一個內(nèi)存地址,或者一個偏移量

舉個例子來說,現(xiàn)在調(diào)用方法hello(),這個方法的地址是1234567,那么hello就是符號引用,1234567就是直接引用

解析階段,虛擬機(jī)會把所有的類名,方法名,字段名這些符號引用替換為具體的內(nèi)存地址或偏移量,也就是直接引用

初始化

對類變量(static修飾的變量或語句)初始化,是執(zhí)行類構(gòu)造器的過程

初始化過程

  • 初始化一個類的時候,其父類尚未初始化,則優(yōu)先初始化其父類
    - 同時包含多個靜態(tài)變量和靜態(tài)代碼塊,則按照自上而下的順序依次執(zhí)行

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Java類加載過程是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!


名稱欄目:Java類加載過程是什么-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/coidjc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部