`
lovexy
  • 浏览: 824 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JVM-GC笔记(二)--- 对象如何回收

    博客分类:
  • GC
阅读更多
    首先,目前主流的JVM实现中都采用了分代收集的算法,我们常常听到的新生代,老年代就是基于这个算法。
    新生代:存放那些朝生夕死的对象
    老年代:存放存活时间超过指定数值的对象
    还有永久代,也就是方法区。存放了类结构,静态数据等,此区域JVM规范中并不要求回收。

    1,标记-清除算法
       原理:通过可达性分析标记无效对象,然后清除。
       问题:产生大量内存碎片,碎片过多时,导致内存不够,提前触发GC

    2,复制算法(适合新生代朝生夕死的特点)
       原理:将堆分为两个区域A,B。分配对象时,在A区域分配,A不够分配时,将A中有效的对象转移到B中,然后清除A。接下来分配对象到B,B不够分配时,将有效对象转移到A中,如此反复。
       问题:空间效率太低
       解决:将堆分为一个eden区域,两个survivor区域。把eden和其中一个survivor看作原理中的A,另一个survivor看作B。转换时,把有效对象从eden和survivor中转移到另一个survivor中,然后在此survivor和eden中分配对象,如此反复。目前eden:survivor = 8:1

    3,标记-整理算法
       原理:同标记-清除算法类似,标记后,将可用的对象移动到一边,清除边界意外的其他对象。

分享到:
评论

相关推荐

    JVM与GC调优课程视频

    JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...

    JAVA-JVM-全面/发展史/GC.zip

    这个压缩包“JAVA-JVM-全面/发展史/GC.zip”显然包含了关于Java、JVM、垃圾回收(GC)及其历史的深入学习资料,特别是通过“JAVA-笔记.pdf”这样的文档形式。 Java的发展史可以追溯到1991年,由Sun Microsystems的...

    马士兵jvm调优笔记.docx

    - **标记-压缩算法**(Mark-Compact):标记过程同标记-清除算法,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。解决了标记-清除算法中的碎片问题...

    JVM历史发展和内存回收笔记

    二、JVM内存回收机制 1. **堆内存**:所有对象都在堆内存中分配,包括实例变量和数组。Java的垃圾回收主要关注堆内存的管理。 2. **垃圾回收算法**: - **标记-清除(Mark-Sweep)**:首先标记出所有活动对象,...

    JVM学习笔记(一)

    ### JVM学习笔记(一) #### 一、JVM概述与工具使用 JVM(Java Virtual Machine)是Java语言的核心组成部分之一,它为Java程序提供了一个跨平台的运行环境。本篇学习笔记主要介绍如何利用一系列工具来查看和监控JVM...

    JVM学习笔记

    ### JVM学习笔记 #### JVM内存模型 (JMM) JVM内存模型主要分为以下几个部分: - **Java堆**:这是所有线程共享的一块区域,在虚拟机启动时创建。主要用于存放对象实例,几乎所有的对象实例都在这里分配内存。 - *...

    jvm 调优笔记-jvm.zip

    《JVM调优笔记》 Java虚拟机(JVM)是Java编程语言的核心组成部分,它负责执行字节码,管理内存,以及优化程序性能。JVM调优是提高Java应用程序性能的关键步骤,涉及到多个方面,包括堆内存设置、垃圾收集器选择、...

    大厂架构师-日均百万订单量的JVM优化与高级GC调优策略实战(5.8G)

    大厂架构师-日均百万订单量的JVM优化与高级GC调优策略实战(5.8G) 〖课程介绍〗: 来自顶尖大厂的架构师级JVM优化与GC调优策略实战课程,是具备有尖端技术的优化课程。在课程内容上几乎不用过多的介绍,单是查阅目录就...

    jvm-study:jvm学习笔记

    - **GC目标**:回收无用的对象,避免内存泄露。 - **GC类型**: Minor GC(新生代GC)、Major GC(老年代GC)、Full GC。 - **GC算法**:标记-清除、复制、标记-整理、分代收集等。 - **垃圾收集器**:Serial、...

    狂神说JVM探究.rar

    这份资料出自B站上的【狂神说Java】系列教程,为快速入门JVM提供了详实的笔记。以下是根据这些资源可能包含的一些关键知识点的详细解析: 1. **JVM概述**: - JVM是Java平台的核心组成部分,它是一个运行Java字节...

    笔记-JVM三期.pdf

    2. **堆(Heap)**:所有对象实例和数组都存储在这里,是JVM中最大的一块内存区域,被所有线程共享。 3. **栈(Stack)**:每个线程都有一个独立的栈,用于存储局部变量表、操作数栈、动态链接和方法出口等信息。 4....

    6.1.5.JVM终结篇笔记1

    【标题】:“6.1.5.JVM终结篇笔记1”主要探讨了JVM的深入理解和垃圾收集(GC)优化,包括GC发生时机、实验环境准备、GC日志及其分析。 【描述】:本笔记首先从宏观角度重新认识JVM,强调了JVM的物理结构,特别是...

    JVM笔记(阳哥).zip

    JVM的垃圾收集机制负责自动回收不再使用的对象所占用的内存,主要有标记-清除、复制、标记-整理和分代收集等算法。理解垃圾收集的工作原理,可以帮助我们设置合理的内存参数,避免Full GC的发生,提高应用的响应速度...

    JVM内存结构笔记.rar

    GC的目标是自动回收不再使用的对象,释放内存。不同的垃圾收集器如Serial、Parallel、Concurrent Mark Sweep (CMS) 和 G1,有不同的工作策略和性能特点。 JVM内存调优包括设置合适的堆大小、新生代与老年代的比例、...

    JVM学习资料+笔记

    这个资料包不仅涵盖了理论知识,还包含个人的学习笔记,对于学习和掌握JVM的各个方面都将大有裨益。无论是初学者还是经验丰富的开发者,都可以从中找到提升自己技能的宝贵资源。通过深入学习和实践,可以更好地理解...

    JVM性能学习笔记思维导图

    本文将根据"JVM性能学习笔记思维导图"的主题,详细阐述JVM的主要组成部分,性能调优的关键点以及相关的工具与实践策略。** 1. **JVM结构与内存模型** - **类装载器(ClassLoader)**:负责加载类文件,确保类在运行...

    jvm学习笔记.zip

    垃圾回收(GC,Garbage Collection)是JVM自动进行内存管理的重要机制,它的目标是回收不再使用的对象所占用的内存空间。GC的主要任务是识别并清理无引用的对象,防止内存泄漏。Java提供了多种垃圾收集算法,如标记-...

    理解虚拟机--有笔记版

    在JVM的执行过程中,类加载器(Class Loader)负责将.class文件中的二进制数据读入内存中,将其转换为方法区内的运行时数据结构,并在堆中生成一个java.lang.Class对象,作为对方法区中数据的访问入口。类加载的过程...

    jVM学习笔记.ppt

    Java虚拟机(JVM)是Java平台的核心组成部分,它负责运行Java程序,并提供了内存管理、垃圾回收以及类加载等关键功能。JVM的学习可以从其基本结构、代码编译和执行过程,以及内存管理和垃圾回收机制三个方面进行深入...

Global site tag (gtag.js) - Google Analytics