成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JVM類加載過程

劉明 / 2417人閱讀

摘要:,初始化的時(shí)候,如果發(fā)現(xiàn)父類沒有初始化,則需要先對(duì)父類初始化。,虛擬機(jī)會(huì)保證一個(gè)類的方法在多線程的環(huán)境下被正確的枷鎖同步。類加載的過程首先類加載將變量和靜態(tài)代碼塊放到類的初始化的方法里面,初始化之后才對(duì)象,執(zhí)行

類加載
類加載的3個(gè)過程
類加載器
1,加載
將class文件字節(jié)碼內(nèi)容加載到內(nèi)存中(字節(jié)碼的來源很多) 并將這些靜態(tài)的數(shù)據(jù)轉(zhuǎn)換成方法區(qū)中運(yùn)行是的數(shù)據(jù)結(jié)構(gòu)(二進(jìn)制的數(shù)據(jù)),在堆中生存一個(gè)代表這個(gè)類的java.lang.Class對(duì)象,作為方法區(qū)類數(shù)據(jù)訪問入口
2,鏈接

將java類的二進(jìn)制代碼合并到j(luò)vm的運(yùn)行狀態(tài)之中的過程
 1),驗(yàn)證:
  確保加載的類信息符合jvm的規(guī)范,沒有安全方面的問題
 2),準(zhǔn)備:
 正式為類變量(static變量)分配內(nèi)存 并且設(shè)置類變量初始化值(全部都是初始默認(rèn)值),這些內(nèi)存都在方法區(qū)中進(jìn)行
 3),解析
 虛擬機(jī)常量池的符號(hào)引用代替換為直接引用的過程int a = 1;轉(zhuǎn)換為直接引用

3, 初始化
1),初始化就是執(zhí)行類類構(gòu)造器()方法的過程,類構(gòu)造器()方法由編譯器自動(dòng)收集類中所有類的變量的賦值動(dòng)作和靜態(tài)的語句塊(static)的語句合并。
2),初始化的時(shí)候,如果發(fā)現(xiàn)父類沒有初始化,則需要先對(duì)父類初始化。
3),虛擬機(jī)會(huì)保證一個(gè)類的()方法在多線程的環(huán)境下 被正確的枷鎖同步。
4),當(dāng)訪問一個(gè)類的靜態(tài)域的時(shí)候,只有真正聲明這個(gè)域的類才會(huì)被初始化。

/**
 * 類加載的過程
 * 首先類加載 將變量和static靜態(tài)代碼塊放到類的初始化的方法里面,初始化之后才new對(duì)象,執(zhí)行static
 * @author Administrator
 *
 */
public class Demo01 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(A.width);
    }
}
class A{
    public static int width = 100;
    static{
        System.out.println("initialized model A");
        width = 300;
    }
    public A(){
        System.out.println("generating A object");
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64867.html

相關(guān)文章

  • JVM加載過程 & 雙親委派模型

    摘要:類加載過程雙親委派模型聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處類加載過程類加載機(jī)制將類描述數(shù)據(jù)從文件中加載到內(nèi)存,并對(duì)數(shù)據(jù)進(jìn)行,解析和初始化,最終形成被直接使用的類型。深入理解虛擬機(jī)高級(jí)特性與最佳實(shí)踐加載加載階段由類加載器負(fù)責(zé),過程見類加載 JVM類加載過程 & 雙親委派模型 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處https://segmentfault.com/u/yzwall ...

    happen 評(píng)論0 收藏0
  • JVM實(shí)戰(zhàn)---加載過程

    任何程序都需要加載到內(nèi)存才能與CPU進(jìn)行交流 同理, 字節(jié)碼.class文件同樣需要加載到內(nèi)存中,才可以實(shí)例化類 ClassLoader的使命就是提前加載.class 類文件到內(nèi)存中 在加載類時(shí),使用的是Parents Delegation Model(溯源委派加載模型) Java的類加載器是一個(gè)運(yùn)行時(shí)核心基礎(chǔ)設(shè)施模塊,主要是在啟動(dòng)之初進(jìn)行類的加載、鏈接、初始化 showImg(https://s...

    bladefury 評(píng)論0 收藏0
  • 從一無所知到無所不知————jvm系列(1)

    摘要:學(xué)習(xí)能更深入的理解這門語言,能理解語言底層的執(zhí)行過程,深入到字節(jié)碼層次。 目錄 ? 前言 程序的運(yùn)行 1.JVM類加載機(jī)制 ①一般在什么情況下會(huì)去加載一個(gè)類?也就是說,什么時(shí)候.class字節(jié)碼文件中加載這個(gè)類到JVM內(nèi)存里來? ②驗(yàn)證、準(zhǔn)備、初始化 ③初始化 2.類加載器和雙親委派機(jī)制 ...

    Betta 評(píng)論0 收藏0
  • JVM 的 工作原理,層次結(jié)構(gòu) 以及 GC工作原理

    摘要:執(zhí)行引擎作用執(zhí)行字節(jié)碼,或者執(zhí)行本地方法運(yùn)行時(shí)數(shù)據(jù)區(qū)其實(shí)就是指在運(yùn)行期間,其對(duì)內(nèi)存空間的劃分和分配。 雖是讀書筆記,但是如轉(zhuǎn)載請(qǐng)注明出處https://uestc-dpz.github.io..拒絕伸手復(fù)制黨 JVM Java 虛擬機(jī) Java 虛擬機(jī)(Java virtual machine,JVM)是運(yùn)行 Java 程序必不可少的機(jī)制。JVM實(shí)現(xiàn)了Java語言最重要的特征:即平臺(tái)...

    qqlcbb 評(píng)論0 收藏0
  • JVM加載過程分析及驗(yàn)證

    摘要:類加載過程共分為加載驗(yàn)證準(zhǔn)備解析初始化使用和卸載七個(gè)階段這些階段通常都是互相交叉的混合式進(jìn)行的,通常會(huì)在一個(gè)階段執(zhí)行的過程中調(diào)用或激活另外一個(gè)階段。 JVM類加載過程共分為加載、驗(yàn)證、準(zhǔn)備、解析、初始化、使用和卸載七個(gè)階段showImg(https://segmentfault.com/img/bV0D9R?w=634&h=203);這些階段通常都是互相交叉的混合式進(jìn)行的,通常會(huì)在一個(gè)...

    zhangyucha0 評(píng)論0 收藏0
  • 學(xué)習(xí)JVM是如何從入門到放棄的?

    摘要:而字節(jié)碼運(yùn)行在之上,所以不用關(guān)心字節(jié)碼是在哪個(gè)操作系統(tǒng)編譯的,只要符合規(guī)范,那么,這個(gè)字節(jié)碼文件就是可運(yùn)行的。好處防止內(nèi)存中出現(xiàn)多份同樣的字節(jié)碼安全性角度特別說明類加載器在成功加載某個(gè)類之后,會(huì)把得到的類的實(shí)例緩存起來。 前言 只有光頭才能變強(qiáng) JVM在準(zhǔn)備面試的時(shí)候就有看了,一直沒時(shí)間寫筆記?,F(xiàn)在到了一家公司實(shí)習(xí),閑的時(shí)候就寫寫,刷刷JVM博客,刷刷電子書。 學(xué)習(xí)JVM的目的也很簡單...

    Joyven 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

劉明

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<