乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java主要知識點(diǎn)——JVM基礎(chǔ)

       碼農(nóng)9527 2021-12-14

        總結(jié)一些容易被遺忘的基礎(chǔ)知識,適合有一定Java基礎(chǔ)的技術(shù)人員閱讀。有些內(nèi)容可能對初學(xué)者來說比較困難,希望能幫助大家輕松應(yīng)對面試官的基本技術(shù)問題,提高編碼效率。

      Java主要知識點(diǎn)——JVM基礎(chǔ)

        JVM基礎(chǔ)

        1、內(nèi)存模型

        (1)程序計(jì)數(shù)器:線程私有、CPU調(diào)度的基本單位,用于保證線程切換(多線程環(huán)境下程序可連續(xù)執(zhí)行);

        (2)棧(服務(wù)Java法虛擬機(jī)棧,服務(wù)Native法本地方法棧):線程私有,局部變量/引用,棧深(SOF)/無法申請內(nèi)存(OOM);

        (3)堆(Java代碼可及的Java堆和JVM本身使用的方法區(qū)):線程共享、對象分配和回收主要區(qū)域、OOM;

        2、垃圾回收機(jī)制。

        (1)Stop-the-World。

        JVM因執(zhí)行GC而停止執(zhí)行應(yīng)用程序稱為Stop-the-world,這種情況發(fā)生在任何GC算法中。當(dāng)Stop-the-world發(fā)生時,除了GC所需的線程外,所有線程都處于等待狀態(tài),直到GC任務(wù)完成。事實(shí)上,GC優(yōu)化往往是指減少Stop-the-world的發(fā)生時間,使系統(tǒng)具有高吞吐量、低停頓的特點(diǎn)。

        (2)回收J(rèn)AVA堆。

        Java對象的回收主要考慮以下兩個問題:哪些對象可以回收,如何回收(哪些回收算法和垃圾回收器)。

       ?、倥袛鄬ο笫欠窨梢曰厥眨阂糜?jì)數(shù)法數(shù)法(相互引用)、可達(dá)性算法(對象引用鏈?zhǔn)欠窨蛇_(dá),GCRoots)

        ②垃圾回收算法:標(biāo)記清除算法(內(nèi)存碎片)、復(fù)制算法(垃圾回收頻繁、對象存活率低的新一代)、標(biāo)記整理算法(垃圾回收不頻繁、對象存活率高的老年人)、分代收集算法。

       ?、劾厥掌鳎捍惺占?新生代、老年代)、并行收集器(新生代、老年代)、并行清除收集器(并發(fā)、新生代、追求高吞吐量)、CMS收集器(并發(fā)、老年、標(biāo)記-清除算法、追求低停頓)、G1垃圾收集器(整堆,追求低停頓)

        附:

        GCRoots一般包括虛擬機(jī)棧中引用的對象、本地方法棧中引用的對象、方法區(qū)中類靜態(tài)屬性引用的對象、方法區(qū)中常引用的對象。

        附:

        GCRoots一般包括虛擬機(jī)棧中引用的對象、本地方法棧中引用的對象、方法區(qū)中類靜態(tài)屬性引用的對象、方法區(qū)中常引用的對象。

        分代收集算法的基本思想是:不同對象的生命周期(生存條件)不同,不同生命周期的對象位于堆中的不同區(qū)域。因此,采用不同的策略回收堆內(nèi)存的不同區(qū)域可以提高JVM的執(zhí)行效率。MinorGC的發(fā)生頻率很高,不一定等到Eden區(qū)域滿了才觸發(fā);MajorGC在老年人滿時觸發(fā),回收年輕人和老年人。

        (3)方法區(qū)回收。

       ?、倩厥粘A砍?。

       ?、谛遁d類型:這類的所有實(shí)例都被回收,這類Classloader被回收,對這類Class對象沒有引用。

        3、OOM/SOF。

        (1)OOMforHeap:內(nèi)存泄露(GCRoots的引用鏈,對象的生命周期超出預(yù)期)或內(nèi)存溢出(調(diào)整JVM參數(shù)-X、-Xmx等。

        (2)OOMforStack:一般不會出現(xiàn)在單線程序中;在多線程環(huán)境下,無法申請足夠的內(nèi)存來創(chuàng)建線程。

        SOFforStack:程序是否有深度遞歸。

        (4)OOMforPerm:使用Spring等框架時,往往會動態(tài)生成大量類別,導(dǎo)致永久代不足,導(dǎo)致OutOfmemoryError:PermgenSpace異常(調(diào)大-XX:MaxPermSize)

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多