当前位置:首页 > 内存 > 正文

内存管理的五种方式

  • 内存
  • 2024-06-07 11:51:59
  • 4448

一、以下方法中哪些是内存管理的方法垃圾回收1、垃圾收集的目的:Java语言的一个显着特点就是垃圾收集的引入,它解决了C++程序员最紧迫的内存管理问题,让Java程序员在编写程序的时候不用考虑内存管理的问题。由于垃圾回收机制的原因,Java中的对象没有“作用域”的概念,只有对象引用才有“作用域”。垃圾收集有效地防止内存泄漏并有效地使用空闲内存。
ps:内存泄漏是指内存空间在使用后没有被重用。在常见的不涉及复杂数据结构的情况下,Java内存泄漏是指内存对象的生命周期超过了所需的时间。这就是我们有时所说的“徘徊”。
2.
由于事情是代代相传的,垃圾收集的地点和时间也不同。GC有两种类型:ScavengeGC和FullGC。
ScavengeGC
一般情况下,当新创建的对象在Eden申请位置失败时,ScavengeGC就会移动到GCEden区,清理非幸存者,并将存活对象移动到Survivor区。然后组织两个Survivor区域。这种GCC方法是由Eden区的年轻代进行的,不影响老年代。由于大部分事情都是从Eden区开始的,而Eden区并不是很大,所以GC往往是在Eden区进行的。因此,一般需采用快速高效的算法,以便尽快释放Eden。
FullGC
填充整个堆栈,包括Young、Tenured和Perm。FullGC比ScavengeGC慢,因为它需要回收整个堆,因此应尽可能减少FullGC的次数。在JVM调优过程中,很大一部分工作就是FullGC调优。以下因素会导致FullGC:
1.老年代已满
2br/>4。每个域的hip分配策略在最后一次GC后会动态变化。