Java類加載連接和初始化原理解析-創(chuàng)新互聯(lián)

1、當(dāng)程序使用某個(gè)類時(shí),JVM將會完成以下這三個(gè)步驟

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的榆林網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Java類加載連接和初始化原理解析

2、連接

1)驗(yàn)證

驗(yàn)證是否是合法的字節(jié)碼文件。驗(yàn)證JDK版本是否正確等。

2)準(zhǔn)備

給成員變量(類變量/靜態(tài)變量)賦默認(rèn)值

把常量(final)等值在方法區(qū)的常量池中給準(zhǔn)備好。

3)解析

虛擬機(jī)常量池內(nèi)的符號引用(常量名)替換為引用(地址)的過程

3、初始化  <clinit> 類初始化

<clinit> 類初始化由兩部分組成:

(1)靜態(tài)變量的顯示初始化代碼,賦值代碼

(2)靜態(tài)代碼塊

(1) 和 (2) 的順序從上往下

Java類加載連接和初始化原理解析

當(dāng)一個(gè)類初始化時(shí),發(fā)現(xiàn)他的父類沒有初始化,會先初始化父類。

每一個(gè)類只會初始化一次,并且初始化的過程時(shí)線程安全的。

哪些操作會導(dǎo)致類的初始化?這句話的意思是:類的加載不一定就會發(fā)生類初始化。

- 以下操作會發(fā)生類初始化:

1)main方法所在的類加載時(shí)

2)new一個(gè)類的對象時(shí)

3)調(diào)用該類的靜態(tài)變量(final的常量除外) 和 靜態(tài)方法時(shí)

4)使用 java.lang.reflect 包的方法對類進(jìn)行反射調(diào)用時(shí)

5)當(dāng)初始化一個(gè)類,如果其父類沒有被初始化,則先會初始化他的父類

- 以下操起不會發(fā)生類的初始化:

1)引用靜態(tài)常量不會觸發(fā)此類的初始化(常量在連接階段就存入了方法區(qū)的常量池中)

2)當(dāng)訪問一個(gè)靜態(tài)域時(shí),只有真正聲明這個(gè)域的類才會被初始化

當(dāng)通過子類引用父類的靜態(tài)變量,不會導(dǎo)致子類初始化

Java類加載連接和初始化原理解析

3)通過數(shù)組定義類引用,不會觸發(fā)此類的初始化

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)建站。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、建站服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:Java類加載連接和初始化原理解析-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://muchs.cn/article28/cshejp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、用戶體驗(yàn)、建站公司、網(wǎng)站維護(hù)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)