首页 > 电脑专区 > 电脑教程 >

什么是jvm垃圾回收

来源:互联网 2023-02-21 19:35:31 455

垃圾收集是回收以前分配的内存的机制mR3办公区 - 实用经验教程分享!

什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

工具/原料

  • IntelliJ IDEA
  • jdk1.8

方法/步骤

  • 1

    垃圾收集是回收以前分配的内存的机制, 以便将来的内存分配可以重用它。在大多数语言中, 垃圾收集是自动化的。你不需要自己释放内存。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 2

    在 java 中, 每当通常由new关键字构造新对象时, jvm 都会为该对象及其所持有的数据分配适当数量的内存。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 3

    当不再需要该对象时, jvm 需要回收该内存, 以便其他构造的对象可以使用它。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 4

    对于 c 和 c 等语言, 有必要手动管理这些内存分配, 通常是通过对 malloc 和free的函数调用。更现代的语言, 如 java 和 c#, 有一个自动系统, 需要付出努力, 也可以避免任何潜在的错误, 远离程序员。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 5

    存在几种不同的垃圾收集算法, 但它们都有相同的目标, 即查找已分配的内存, 这些内存不再被任何实时代码引用, 并将其返回到可用内存池, 以便将来进行分配。mR3办公区 - 实用经验教程分享!

  • 6

    java 中的传统垃圾收集算法称为标记扫描。运行代码中的每个对象引用都标记为活动, 该对象中的每个引用都被遍历, 并且也被标记为活动, 依此类推, 直到跟踪了来自活动对象的所有路由。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 7

    完成此操作后, 将访问堆中的每个对象, 并且未标记为活动的内存位置可用于分配。在此过程中, jvm 中的所有线程都将暂停, 以允许回收内存 (称为 "停止世界")。当然, 垃圾回收器会尝试将所需的时间降至最低。自 java 首次发布以来, 垃圾收集算法已经进行了几次迭代, 尽可能多的工作是并行完成的。mR3办公区 - 实用经验教程分享!

  • 8

    java 6 引入了一种新的算法, 称为 "Garbage First(g1)"。它被批准在 java 6 中测试使用, 在 java 7 中使用生产。g1 仍然专注于并行运行的标记扫描算法, 但它首先集中在主要是空内存的区域, 试图保持大量可用空间。mR3办公区 - 实用经验教程分享!

  • 8此文章未经授权抓取自百度经验
  • 9

    其他操作也会在垃圾收集过程中执行, 例如升级到不同的代, 以及通过在内存中移动对象来将频繁访问的对象组合在一起, 以尝试保留尽可能多的可用空间。这称为压缩。压缩发生在 jvm 处于停止世界阶段时, 因为活动对象有可能移动到不同的物理内存位置。mR3办公区 - 实用经验教程分享!

    什么是jvm垃圾回收?mR3办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!mR3办公区 - 实用经验教程分享!


    标签: 操作系统JAVA内存垃圾回收

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码