首页 > 系统相关 >垃圾回收主要是回收那块内存区域?

垃圾回收主要是回收那块内存区域?

时间:2023-11-24 11:15:30浏览次数:37  
标签:Java 对象 新生代 回收 垃圾 块内存 内存

Java虚拟机的垃圾回收主要集中在Java堆这个内存区域。Java堆是用于存放对象实例的内存区域,垃圾回收的目标就是清理掉那些不再被引用的对象,释放内存空间,以便新的对象能够被创建和分配。

Java堆可以划分为两个主要的区域:

  1. 新生代(Young Generation): 新创建的对象首先被分配到新生代。新生代又分为三个区域:Eden区和两个Survivor区(通常称为S0和S1)。大部分对象在新生代很快变成不再被引用的垃圾对象。

  2. 老年代(Old Generation): 在新生代经历一些轮次的垃圾回收后,仍然存活下来的对象会被晋升到老年代。老年代主要存放一些较为长寿的对象。

垃圾回收主要针对这两个区域进行,具体的垃圾回收算法和策略可能有所不同,常见的有:

  • 新生代的垃圾回收算法: 主要使用复制算法(Copying),将存活的对象从Eden区和Survivor区复制到另一个Survivor区,或者晋升到老年代。

  • 老年代的垃圾回收算法: 主要使用标记-清除-整理(Mark-Sweep-Compact)算法,通过标记不再使用的对象,清除这些对象,并对存活的对象进行整理,以减少碎片。

Java虚拟机的垃圾回收系统旨在最大限度地减小应用程序对内存管理的负担,提高程序的性能和稳定性。回收不再使用的内存有助于防止内存泄漏,保障系统的稳定性。

标签:Java,对象,新生代,回收,垃圾,块内存,内存
From: https://www.cnblogs.com/guoyu1/p/17853284.html

相关文章

  • JVM学习记录三(垃圾回收器之标记法及回收算法)
    先了解为什么样的垃圾会被回收,哪里的垃圾回收的是堆内垃圾,当对象没有任何引用指向,那就是垃圾,就有可能被回收回去怎么定位是可需要被回收的垃圾引用计数法:当对象被引用一次那就增加一个一个引用次数,如果未被引用过,则引用次数为0,不过可能会存在循环引用,出现内存泄露的问题可达性计数......
  • 垃圾回收机制
    引用计数Python中,主要通过引用计数(ReferenceCounting)进行垃圾回收typedefstruct_object{intob_refcnt;struct_typeobject*ob_type;}PyObject;在Python中每一个对象的核心就是一个结构体PyObject,它的内部有一个引用计数器(ob_refcnt)。程序在运行的过程中会实时的更......
  • 《流畅的Python》 读书笔记 第8章_对象引用、可变性和垃圾回收
    第8章_对象引用、可变性和垃圾回收本章的主题是对象与对象名称之间的区别。名称不是对象,而是单独的东西name='wuxianfeng'#name是对象名称'wuxianfeng'是个str对象variablesarelabels,notboxes变量是标注,而不是盒子引用式变量的名称解释本章还会讨论标识......
  • JVM之垃圾回收算法
    1.概述在JVM中,最大的亮点就是自动垃圾回收机制,那它是根据什么依据来判断是垃圾的呢,又是根据什么算法来回收垃圾的呢?不同的垃圾回收算法有不同的特点和应用场景,本文整理了JVM常见的几种垃圾回收算法,以及其优缺点和适用场景供读者参考。不熟悉JVM内存模型的可先参考如下这篇文章(......
  • Java中ThreadLocal说明 使用线程内变量,完成后需调用remove()方法将其移除,即使异常也
    Java中ThreadLocal说明,完成后需调用remove()方法将其移除,即使异常也记得remove()回收,创建ThreadLocal线程变量publicstaticThreadLocalthreadLocal=newThreadLocal<>();1、ThreadLocal是什么ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储......
  • G1 垃圾收集器介绍?️讲得很粗需要细嚼
    本文讲那些东西?堆布局(以Region为基础划分:新生代(Eden区、Survivor区)、年老代、Humongous区域)垃圾收集周期GC运作过程:初始标记、并发标记、最终标记、筛选回收GC类型:MinorGC、FullGC、MixedGCCSet(年轻代需要手机的Region集合就是CSet)跨代引用停顿预测模型GC日志分......
  • 02垃圾回收机制
    内存的生命周期JS环境中分配的内存,一般有如下生命周期:1.内存分配当我们生命变量函数对象时,系统自动为他们分配内存2.内存使用及读写内存,也就是使用变量函数3.内存回收使用完毕有垃圾回收器自动回收不再使用的内存说明全局变量一般不会回收关闭页面回收一般情况下局部......
  • JVM系列-第10章-垃圾回收概述和相关算法-cnblog
    title:JVM系列-第10章-垃圾回收概述和相关算法tags:-JVM-虚拟机categories:-JVM-1.内存与垃圾回收篇keywords:JVM,虚拟机。description:JVM系列-第10章-垃圾回收概述和相关算法。cover:'https://gitee.com/youthlql/randombg/raw/master/logo/jvm.png'ab......
  • JVM系列-第12章-垃圾回收器-cnblog
    title:JVM系列-第12章-垃圾回收器tags:-JVM-虚拟机categories:-JVM-1.内存与垃圾回收篇keywords:JVM,虚拟机。description:JVM系列-第12章-垃圾回收器。cover:'https://gitee.com/youthlql/randombg/raw/master/logo/jvm.png'abbrlink:7706d61ddate:2......
  • 一个操作系统的设计与实现——第13章 任务(四):任务回收
    在前面的两章中,我们的操作系统均不支持任务回收,所以任务不能退出。本章将要实现的是任务回收功能。13.1任务回收的原理如果一个任务位于任务队列中,其就会被运行。所以,如果一个任务的运行已经结束,它就应该从任务队列中删除。仅仅将任务从任务队列中删除是不够的,这是因为任务还......