当前位置: 首页 > news >正文

Java学习--JVM(2)

        JVM提供垃圾回收机制,其也是JVM的核心机制,其主要是实现自动回收不再被引用的对象所占用的内存;对内存进行整理,防止内存碎片化;以及对内存分配配进行管理。

        JVM 通过两种主要算法判断对象是否可回收:

                引用计数算法:为每个对象维护一个引用计数器,每被一个对象调用,则计数加1,当计数为 0 时,也就是没有被对象调用的时候,即表示该对象可被回收。然而,这个算法无法解决循环引用问题,即a调用b,b调用a的情况,因此已被主流 JVM 弃用。

                可达性分析算法:从 GCRoots 开始,通过引用链判断对象是否可达。不可达的对象被视为垃圾。GC Roots 包括虚拟机栈中的局部变量、类的静态字段、本地方法栈中的 JNI 引用等,企业是目前主流JVM所使用的算法。

        

JVM的垃圾回收机制根据内存区域的不同采用不同的回收策略:

        堆内存回收:主要针对新生代和老年代采用分代收集算法。新生代使用复制算法,将内存分为Eden区和两个Survivor区,对象首先在Eden区分配,经历Minor GC后存活对象被复制到Survivor区。老年代采用标记-清除或标记-整理算法处理长期存活的对象。

        方法区回收:主要回收废弃的常量和不再使用的类。由于回收条件苛刻且收益较低,通常不频繁执行。需要满足类的所有实例已被回收、类加载器已被回收、类的Class对象没有被引用三个条件才会被回收。

        JVM提供多种垃圾收集器以适应不同场景:

                串行收集器:单线程执行垃圾回收,适用于客户端模式和小内存应用,回收时会产生停顿。

                并行收集器:多线程并行回收,适合吞吐量优先的应用场景,能有效利用多核CPU资源。

                并发标记清除收集器:在应用线程运行同时进行大部分回收工作,显著减少停顿时间,适合响应时间敏感的应用。

        JVM还提供内存分配和调优相关机制:

                对象优先在Eden区分配,大对象直接进入老年代,长期存活的对象通过年龄阈值晋升到老年代。

                通过调节新生代与老年代比例、设置停顿时间目标、调整垃圾回收线程数等参数可优化GC性能。

                使用内存逃逸分析和栈上分配等技术减少堆内存压力,某些情况下对象可直接在栈上分配和回收。

        

http://www.dtcms.com/a/284116.html

相关文章:

  • Java面试(基础篇) - 第二篇!
  • 如何用 Python + LLM 构建一个智能栗子表格提取工具?
  • Spring,Spring Boot 和 Spring MVC 的关系以及区别
  • 深入解析Hadoop:机架感知算法与数据放置策略
  • #Linux内存管理# vm_normal_page()函数返回的什么样页面的struct page数据结构?为什么内存管理代码中需要这个函数?
  • 【机器学习】第三章 分类算法
  • 如何判断你的EDA工具安装是否真的成功?
  • 数据呈现:让图表说话,从数字到洞察的可视化艺术
  • “显著性”(Saliency)是计算机视觉中的一个重要概念,主要指的是图像或视频中最吸引人注意力的区域或对象
  • Python进阶操作——创建容器
  • Ubuntu开启root用户登陆
  • MyBatis延迟加载(Lazy Loading)之“关联查询”深度解析与实践
  • ros0基础-day13
  • java之json转excel生成
  • Oracle11.2.0.4 RAC迁移升级Oracle19.3 RAC
  • R语言基础| 基本图形绘制(条形图、堆积图、分组图、填充条形图、均值条形图)
  • 规则引擎rule-engine(三)可视化api设计和实现解释
  • 解读一个大学专业——信号与图像处理
  • 2025年Java后端秋招面试的高频八股文+场景题
  • NFS、iSCSI 和lnmp部署操作
  • 深度学习之神经网络(二)
  • 神经网络常见激活函数 15-B-SiLU 函数
  • OCR 赋能档案数字化:让沉睡的档案 “活” 起来
  • 无线充电技术详解:原理、芯片选型与应用场景
  • Android开发中Retrofit使用方法与底层原理详解
  • 学习设计模式《十八》——备忘录模式
  • 第5天 | openGauss中一个用户可以访问多个数据库
  • 数据分析:从数据到决策的核心逻辑与实践指南
  • 微信小程序地理定位功能
  • SLG 游戏如何进行防破解和防盗版保护?