日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

[译]Java 垃圾回收介绍

發(fā)布時(shí)間:2023/12/13 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [译]Java 垃圾回收介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說(shuō)明:這篇文章來(lái)翻譯來(lái)自于Javapapers 的Java Garbage Collection Introduction

在Java中,對(duì)象內(nèi)存空間的分配與回收是由JVM中的垃圾回收進(jìn)程自動(dòng)完成的。和C語(yǔ)言不一樣的是,開發(fā)中不需要在Java中寫垃圾回收代碼。這也是使Java更加流行而且?guī)椭_發(fā)中寫出更好的Java應(yīng)用程序的Java特性之一。

下面是關(guān)于Java 垃圾回收的基礎(chǔ)介紹的四個(gè)系列文章。

1.Java垃圾回收介紹

2.Java垃圾回收是如何工作的

3.Java垃圾回收器的類型

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

這篇文章是四個(gè)系列指南的第一部分。它將首先解釋像JDK、JVM、JRE、HotSpot VM這樣的名詞,然后介紹JVM架構(gòu)以及Java堆內(nèi)存結(jié)構(gòu)。因?yàn)樵诶斫釰ava垃圾回收之前這些是一些了解的基礎(chǔ)。

主要的Java名詞

  • Java API:幫助開發(fā)者創(chuàng)建應(yīng)用程序封裝庫(kù)的集合

  • Java Development Kit (JDK) :使開發(fā)者能夠創(chuàng)建Java應(yīng)用程序的工具集。JDK包含了能夠編譯、運(yùn)行、打包、發(fā)布和監(jiān)控Java應(yīng)用程序的工具。

  • Java Virtual Machine (JVM) :JVM是一個(gè)抽象的計(jì)算機(jī),Java程序是根據(jù)JVM規(guī)范來(lái)寫的。JVM是根據(jù)操作系統(tǒng)平臺(tái)來(lái)寫的,而且他們負(fù)責(zé)將java指令翻譯成底層平臺(tái)的規(guī)范指令并且運(yùn)行他們。JVM使java程序保存平臺(tái)無(wú)關(guān)系。
  • Java Runtime Environment (JRE) :JRE由JVM實(shí)現(xiàn)和Java API組成。

Java HotSpot 虛擬機(jī)

每一個(gè)JVM的在垃圾回收方式的實(shí)現(xiàn)上可能是不同的。以前SUN被Oracle收購(gòu)以前,他們使用JRockit JVM,但是在被Oracle收購(gòu)之后,改成了HotSpot JVM。目前,Oracle擁有了這兩個(gè)JVM的實(shí)現(xiàn),而且他們聲稱經(jīng)過(guò)一段時(shí)間之后他們會(huì)把這兩個(gè)虛擬機(jī)的實(shí)現(xiàn)整合成一個(gè)。

HotSpot JVM已經(jīng)作為了Oracle SE平臺(tái)的核心組件的一部分。在這個(gè)垃圾回收指南中,我們將看到基于HotSpot虛擬機(jī)的垃圾回收機(jī)制。

JVM 架構(gòu)

下面的這張圖包含了在一個(gè)JVM中的核心組件。在一個(gè)JVM架構(gòu)中,和垃圾回收相關(guān)的兩個(gè)主要組件是堆內(nèi)存和垃圾回收器。堆內(nèi)存是運(yùn)行時(shí)數(shù)據(jù)區(qū),就是實(shí)例存放的地方并且由垃圾回收器來(lái)來(lái)管理。現(xiàn)在我們就來(lái)了解這些東西是如何在更大的設(shè)計(jì)中相適應(yīng)的。

Java堆內(nèi)存

理解對(duì)內(nèi)存在JVM內(nèi)存模型中角色是很有必要的。在運(yùn)行時(shí)Java實(shí)例被存儲(chǔ)在堆內(nèi)存區(qū)。當(dāng)一個(gè)對(duì)象不再被其他對(duì)象所引用的時(shí)候,它將會(huì)被從堆內(nèi)存中回收。在垃圾回收進(jìn)程中,這些對(duì)象被從堆內(nèi)存中回收而且空間被釋放。堆內(nèi)存只要有三個(gè)主要的區(qū)域:

  • 1.年輕代(Young Generation)
    • 1.Eden Space(任何進(jìn)入運(yùn)行時(shí)內(nèi)存都會(huì)經(jīng)過(guò)Eden區(qū))
    • 2.S0 Surivior Sapce(從Eden移到S0的實(shí)例對(duì)象)
    • 3.S1 Surivior Sapce(從S0移到S1的更老實(shí)例對(duì)象)
  • 2.老年代(Old Generation ,從S1到的區(qū)域)
  • 3.永久代(Permanent Generation,包含像類、方法詳情的元數(shù)據(jù)信息)

更新:永久代(Permgen)區(qū)已經(jīng)從Java SE8 功能被移除了

轉(zhuǎn)載于:https://www.cnblogs.com/zhangminghui/p/4126513.html

總結(jié)

以上是生活随笔為你收集整理的[译]Java 垃圾回收介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。