当前位置: 首页 > 面试题库 >

PermGen和堆,差异及其意义

萧焱
2023-03-14
问题内容

朋友们

您能给我Heap和PermGen的意义,区别和用途吗?另外,最好分别知道在哪个类中加载了什么类。

与Java VM规范相关的说明将非常有帮助

谢谢普尼思


问题答案:

内存(堆)是分代管理的,或者是拥有不同年龄对象的内存池。当世代填满时,垃圾回收会在每个世代中发生。对象在一代中分配给较年轻的对象或young generation,并且由于婴儿死亡,大多数对象都死在了那里。

构造任何新对象时,它将进入的一部分的伊甸园空间Young Generation

如果对象在一段时间后仍然存在,它将转到tenured generation寿命长的对象所在的位置。

如果应该保留对象,直到存在过度处理,则将对象移至Perm GenerationJava classes被存储在永久代中。



 类似资料:
  • 据此: 在系统中安装了Maven之后,下一步就是对其进行微调以获得最佳性能。默认情况下,最大堆分配为256-512 MB(-XMS256M到-XMX512M)。在构建大型复杂Java项目时,此默认限制不起作用,建议您至少拥有1024 MB的最大堆。 现在,我认为堆空间和permgen空间的max和min值是由JVM设置的。Maven只能通过我们设置的MAVEN_OPTS env变量来设置它们。那么

  • 我们使用意图在两个活动之间切换,片段也是出于相同的目的。那么为什么我们不能总是使用意图而不是片段呢?

  • 主要内容:src/runoob/heap/IndexMaxHeap.java 文件代码:一、概念及其介绍 索引堆是对堆这个数据结构的优化。 索引堆使用了一个新的 int 类型的数组,用于存放索引信息。 相较于堆,优点如下: 优化了交换元素的消耗。 加入的数据位置固定,方便寻找。 二、适用说明 如果堆中存储的元素较大,那么进行交换就要消耗大量的时间,这个时候可以用索引堆的数据结构进行替代,堆中存储的是数组的索引,我们相应操作的是索引。 三、结构图示 我们需要对之前堆的代码实现进行改造,

  • 本文向大家介绍成本差异和进度差异之间的差异,包括了成本差异和进度差异之间的差异的使用技巧和注意事项,需要的朋友参考一下 对于任何应用程序或专门用于任何项目,最关注的因素之一是在开发前和开发后阶段的预算管理和时间管理。因此,要评估任何项目的这两个主要因素,有很多方法,其中成本差异和进度差异是两个重要且主要的方法。 顾名思义,“成本差异”基于项目开发中花费的成本,而“进度差异”则基于相同开发中花费的时

  • 在图像中,使用内存为3.8G,提交内存为8.6G,最大内存也为8.6G,任何人都可以解释使用内存和提交内存之间的差异,或者任何解释它的链接。

  • 问题内容: 他们两个几乎都做同样的事情。确定该方法很热,然后编译而不是解释。使用OSR,您只需在编译后立即转到编译版本,而不像JIT,后者是在第二次调用该方法时调用已编译的代码。 除此之外,还有其他区别吗? 问题答案: 通常, 即时 编译是指在运行时编译本机代码并执行它,而不是(或除了)进行解释。某些虚拟机(例如Google V8)甚至都没有解释器;这些虚拟机甚至没有解释器。他们通过JIT编译执行