jvm内存区域划分edenspacesurvivorspacetenuredgen,permgen解释

滴滴滴--你不是爱拖延,而是爱逃避 滴滴滴--你不是爱拖延,而是爱逃避     2022-10-09     563

关键词:

http://blog.csdn.net/zhushuai1221/article/details/51027024


JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释 以下内容转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29632145&id=4616836 jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。 HotSpot虚拟机GC算法采用分代收集算法: 1、一个人(对象)出来(new 出来)后会在Eden Space(伊甸园)无忧无虑的生活,直到GC到来打破了他们平静的生活。GC会逐一问清楚每个对象的情况,有没有钱(此对象的引用)啊,因为GC想赚钱呀,有钱的才可以敲诈嘛。然后富人就会进入Survivor Space(幸存者区),穷人的就直接kill掉。 2、并不是进入Survivor Space(幸存者区)后就保证人身是安全的,但至少可以活段时间。GC会定期(可以自定义)会对这些人进行敲诈,亿万富翁每次都给钱,GC很满意,就让其进入了Genured Gen(养老区)。万元户经不住几次敲诈就没钱了,GC看没有啥价值啦,就直接kill掉了。 3、进入到养老区的人基本就可以保证人身安全啦,但是亿万富豪有的也会挥霍成穷光蛋,只要钱没了,GC还是kill掉。 分区的目的:新生区由于对象产生的比较多并且大都是朝生夕灭的,所以直接采用标记-清理算法。而养老区生命力很强,则采用复制算法,针对不同情况使用不同算法。 非heap区域中Perm Gen中放着类、方法的定义,jvm Stack区域放着方法参数、局域变量等的引用,方法执行顺序按照栈的先入后出方式。 以上转自:http://lhc1986.iteye.com/blog/1421832 以下转自:http://www.cnblogs.com/xhr8334/archive/2011/12/01/2270994.html

 

jvm的内存区域划分

学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?由于Java程序是交由JVM执行的,所以我们在谈Java... 查看详情

jvm的内存区域划分

...                JVM的内存区域划分  学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中... 查看详情

jvm的内存区域划分

...                JVM的内存区域划分  学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中... 查看详情

jvm的内存区域划分

    说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存和栈... 查看详情

jvm的内存区域划分

    说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存和栈... 查看详情

jvm内存区域划分

...执行。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些内存区域被统一叫做运行时数据区。Java运行时数据区大致可以划分为5个 查看详情

jvm--内存区域划分

【原文地址】https://blog.csdn.net/sd4015700/article/details/50109939EdenSpace、SurvivorSpace、TenuredGen,PermGen解释JVM区域总体分两类,heap区和非heap区。heap区又分:EdenSpace(伊甸园)、SurvivorSpace(幸存者区)、TenuredGen(老年代-养老区)。非heap区... 查看详情

jvm内存区域划分

  学习Java不可避免的要学习Java虚拟机,也就是JVM,Java虚拟机规范里面规定了程序运行期间会使用到的运行时数据区。  这其中有一些是随着虚拟机的启动和退出而创建和销毁的,这些区域是线程共享的,另外还有一些是跟... 查看详情

jvm:3jvm的内存区域划分与职能

1.什么是JVM的内存区域划分JVM在运行写好的代码时,必须使用多块内存空间,不同的内存空间用来放不同的数据,然后配合写的代码流程,才能让系统运行起来。JVM里必须有一块内存区域,用来存放写的那些类... 查看详情

jvm的内存区域划分

JVM的内存区域划分来源 https://www.cnblogs.com/xiaoxi/p/6421526.html 说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象... 查看详情

jvm内存区域划分及gc简述

  通常情况下,JVM(JavaVirtualMachine,Java虚拟机)将内存区域划分为以下5个部分:  1.MethodArea(Non-Heap)(方法区)——线程共享2.Heap(堆)——线程共享3.ProgramCounterRegister(程序计数器)——非线程共享4.VMStack(虚拟机栈... 查看详情

jvm内存区域划分edenspacesurvivorspacetenuredgen,permgen解释

http://blog.csdn.net/zhushuai1221/article/details/51027024JVM内存区域划分EdenSpace、SurvivorSpace、TenuredGen,PermGen解释以下内容转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29632145&id=461683 查看详情

jvm内存区域的划分(内存结构或者内存模型)

运行时数据区域:根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。程序计数器(线程私有):  是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类... 查看详情

jvm——内存区域划分(代码片段)

前言:jvm内存划分为多个区域,每个不同的区域分别有着不同的功能和不同的用途,本篇博客旨在说清楚区域的划分、名称、属性以及作用,本篇博客是参考了多篇博客的结果,参考博客会在文章结尾进行说... 查看详情

jvm内存模型

what?when?why?how?whatJVM内存结构指的是哪一块区域?JVM内存划分的各个区域都存储什么信息?每个划分的区域有什么特点?when划分的区域有没有随着jdk的变动有所改动?howJVM内存结构如何划分?whyJVM内存结构指的是哪一块区域?java... 查看详情

jvm内存区域的划分(内存结构或者内存模型)

运行时数据区域:根据 JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。程序计数器(线程私有):  是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,... 查看详情

5.jvm的内存区域划分

一、JVM介绍1.什么是JVM?JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一... 查看详情

关于jvm内存的n个问题(代码片段)

JVM的内存区域是怎么划分的?JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么... 查看详情