亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

細(xì)述 Java垃圾回收機(jī)制→Java Garbage Collection Introduction

codergarden / 1198人閱讀

摘要:在架構(gòu)中,堆內(nèi)存和垃圾回收器這兩個(gè)部分和垃圾回收相關(guān)。堆內(nèi)存在的內(nèi)存模型中,最重要的是要了解堆內(nèi)存的概念。在垃圾回收的過程中,這些對(duì)象將被從堆內(nèi)存中清除,同時(shí)它們的空間也就被回收了。

本文非原創(chuàng),翻譯自Java Garbage Collection introduction
在Java中為對(duì)象分配和釋放內(nèi)存空間都是由垃圾回收線程自動(dòng)執(zhí)行完成的。和C語言不一樣的是Java程序員不需要手動(dòng)寫垃圾回收相關(guān)的代碼。這是使得Java如此流行,同時(shí)也是Java能幫助程序員寫出更好的Java應(yīng)用的優(yōu)點(diǎn)之一。

計(jì)劃寫一個(gè)介紹Java垃圾回收基礎(chǔ)的系列文章,共分四部分:

Java垃圾回收簡(jiǎn)介

Java垃圾回收器是如何工作的?

各種類型的Java垃圾回收器

Java垃圾回收的監(jiān)控和分析

本文是這個(gè)系列的第一篇文章,這篇文章將會(huì)介紹一些基本術(shù)語,如:JDK,JVM,JRE,HotSpot VM,以及理解JVM的架構(gòu)和Java堆內(nèi)存結(jié)構(gòu)。在開始學(xué)習(xí)Java垃圾回收機(jī)制之前確實(shí)有必要了解一下這些基本東西。

關(guān)鍵的Java術(shù)語

Java API–一個(gè)幫助程序員創(chuàng)建Java應(yīng)用的打包好的庫集合

Java Development Kit(JDK)–一個(gè)使得程序員能夠開發(fā)Java應(yīng)用的工具集合

Java Virtual Machine(JVM)–JVM是一個(gè)抽象的計(jì)算機(jī)。Java程序是針對(duì)JVM規(guī)范寫的。JVM是根據(jù)不同的操作系統(tǒng)平臺(tái)實(shí)現(xiàn)的,它將Java指令翻譯成對(duì)應(yīng)平臺(tái)上的指令,并執(zhí)行。這樣Java程序能夠達(dá)到平臺(tái)獨(dú)立性。

Java Runtime Environment(JRE)–JRE由一個(gè)JVM的實(shí)現(xiàn)和Java API組成。

Java HotSpot虛擬機(jī)

每個(gè)JVM的實(shí)現(xiàn)在對(duì)垃圾回收的原理的實(shí)現(xiàn)方式上會(huì)有一些不同。在收購SUN之前Oracle有JRockit JVM,收購SUN之后有了HotSpot虛擬機(jī)。目前Oracle同時(shí)維護(hù)了這兩個(gè)虛擬機(jī),并宣稱將來會(huì)將兩個(gè)虛擬機(jī)合并。

HotSpot虛擬機(jī)是Oracle標(biāo)準(zhǔn)版平臺(tái)的核心組成部分。在本垃圾回收系列文章中我們將通過HotSpot虛擬機(jī)來了解垃圾回收的基本準(zhǔn)則。

JVM 架構(gòu)

下面的這幅圖概括了一個(gè)JVM中的主要組成。在JVM架構(gòu)中,堆內(nèi)存和垃圾回收器這兩個(gè)部分和垃圾回收相關(guān)。堆內(nèi)存是運(yùn)行時(shí)用來存儲(chǔ)實(shí)例對(duì)象的數(shù)據(jù)空間,垃圾回收器運(yùn)行在堆內(nèi)存上。現(xiàn)在我們大概知道它們是怎樣的一個(gè)工作模式。

Java 堆內(nèi)存

在Java的內(nèi)存模型中,最重要的是要了解堆內(nèi)存的概念。運(yùn)行時(shí)的Java實(shí)例對(duì)象存儲(chǔ)在堆內(nèi)存空間中。當(dāng)一個(gè)對(duì)象不再被引用了,它變成可被從堆內(nèi)存中回收空間。在垃圾回收的過程中,這些對(duì)象將被從堆內(nèi)存中清除,同時(shí)它們的空間也就被回收了。堆內(nèi)存的空間主要分成了三部分,

年輕代
a, Eden區(qū)(所有實(shí)例在運(yùn)行時(shí)最初都分配到eden區(qū)中)
b, S0 Survivor Space(老一些的對(duì)象被從eden區(qū)移動(dòng)到S0區(qū),其實(shí)是eden區(qū)中的對(duì)象經(jīng)過一次對(duì)eden區(qū)的Young GC還存活的對(duì)象被移動(dòng)到S0)
c, S1 Survivor Space(再老一些的對(duì)象被從S0區(qū)移動(dòng)到S1區(qū),其實(shí)是在Young GC過程中S0區(qū)已滿,則會(huì)將eden區(qū)中還存活的對(duì)象和S0區(qū)中的存活對(duì)象移動(dòng)到S1區(qū)中)

老年代(經(jīng)過S0,S1中幾輪迭代后還存活的對(duì)象被提升到老年代)

永久代(包含一些元數(shù)據(jù)像類、方法等等)

永久代空間在Java SE8特性中已經(jīng)被移除

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

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

相關(guān)文章

  • 細(xì)述 Java垃圾回收機(jī)制→How Java Garbage Collection Works?

    摘要:當(dāng)一個(gè)實(shí)例被創(chuàng)建的時(shí)候,它最初被存放在堆內(nèi)存空間的年輕代的區(qū)中。老年代或者永久代是堆內(nèi)存的第二個(gè)邏輯部分。在垃圾回收過程中掃描屬于部分的堆內(nèi)存。一旦實(shí)例從堆內(nèi)存中刪除了,它們?cè)瓉淼奈恢脤⒖粘鰜斫o以后分配實(shí)例使用。 本文非原創(chuàng),翻譯自How Java Garbage Collection Works?在Java中為對(duì)象分配和釋放內(nèi)存空間都是由垃圾回收線程自動(dòng)執(zhí)行完成的。和C語言不一樣的是...

    cc17 評(píng)論0 收藏0
  • 細(xì)述 Java垃圾回收機(jī)制Java Garbage Collection Monitoring a

    摘要:垃圾回收監(jiān)控和分析工具是在安裝時(shí)免費(fèi)提供的。監(jiān)控現(xiàn)在可以監(jiān)控垃圾回收過程了。至少我們可以知道程序中存在和對(duì)象內(nèi)存分配和垃圾回收相關(guān)的問題。到此為止,關(guān)于垃圾回收的系列文章已經(jīng)完結(jié)了。 本文非原創(chuàng),翻譯自Java Garbage Collection Monitoring and Analysis在Java中為對(duì)象分配和釋放內(nèi)存空間都是由垃圾回收線程自動(dòng)執(zhí)行完成的。和C語言不一樣的是Ja...

    xuhong 評(píng)論0 收藏0
  • 細(xì)述 Java垃圾回收機(jī)制→Types of Java Garbage Collectors

    摘要:并發(fā)標(biāo)記清除垃圾回收器,使用多個(gè)線程來掃描堆內(nèi)存并標(biāo)記可被清除的對(duì)象,然后清除標(biāo)記的對(duì)象。垃圾回收器應(yīng)用于大的堆內(nèi)存空間。它將堆內(nèi)存空間劃分為不同的區(qū)域,對(duì)各個(gè)區(qū)域并行地做回收工作。它會(huì)通過把重復(fù)的值移動(dòng)到同一個(gè)數(shù)組來優(yōu)化堆內(nèi)存占用。 本文非原創(chuàng),翻譯自Types of Java Garbage Collectors在Java中為對(duì)象分配和釋放內(nèi)存空間都是由垃圾回收線程自動(dòng)執(zhí)行完成的。...

    Julylovin 評(píng)論0 收藏0
  • 程序員練級(jí)攻略(2018):Java底層知識(shí)

    摘要:最黑科技的玩法就是字節(jié)碼編程,也就是動(dòng)態(tài)修改或是動(dòng)態(tài)生成字節(jié)碼。使用字節(jié)碼編程可以玩出很多高級(jí)玩法,其中最高級(jí)的玩法是在程序運(yùn)行時(shí)進(jìn)行字節(jié)碼修改和代碼注入。 showImg(https://segmentfault.com/img/bVbkqqg?w=1142&h=640);這個(gè)是我訂閱 陳皓老師在極客上的專欄《左耳聽風(fēng)》,我貼出來是為了自己以后方便學(xué)習(xí)和記憶,同時(shí)也分享給你們一起學(xué)習(xí)...

    wean 評(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

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

0條評(píng)論

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