steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 549
垃圾收集是回收以前分配的内存的机制
垃圾收集是回收以前分配的内存的机制, 以便将来的内存分配可以重用它。在大多数语言中, 垃圾收集是自动化的。你不需要自己释放内存。
在 java 中, 每当通常由new关键字构造新对象时, jvm 都会为该对象及其所持有的数据分配适当数量的内存。
当不再需要该对象时, jvm 需要回收该内存, 以便其他构造的对象可以使用它。
对于 c 和 c 等语言, 有必要手动管理这些内存分配, 通常是通过对 malloc 和free的函数调用。更现代的语言, 如 java 和 c#, 有一个自动系统, 需要付出努力, 也可以避免任何潜在的错误, 远离程序员。
存在几种不同的垃圾收集算法, 但它们都有相同的目标, 即查找已分配的内存, 这些内存不再被任何实时代码引用, 并将其返回到可用内存池, 以便将来进行分配。
java 中的传统垃圾收集算法称为标记扫描。运行代码中的每个对象引用都标记为活动, 该对象中的每个引用都被遍历, 并且也被标记为活动, 依此类推, 直到跟踪了来自活动对象的所有路由。
完成此操作后, 将访问堆中的每个对象, 并且未标记为活动的内存位置可用于分配。在此过程中, jvm 中的所有线程都将暂停, 以允许回收内存 (称为 "停止世界")。当然, 垃圾回收器会尝试将所需的时间降至最低。自 java 首次发布以来, 垃圾收集算法已经进行了几次迭代, 尽可能多的工作是并行完成的。
java 6 引入了一种新的算法, 称为 "Garbage First(g1)"。它被批准在 java 6 中测试使用, 在 java 7 中使用生产。g1 仍然专注于并行运行的标记扫描算法, 但它首先集中在主要是空内存的区域, 试图保持大量可用空间。
其他操作也会在垃圾收集过程中执行, 例如升级到不同的代, 以及通过在内存中移动对象来将频繁访问的对象组合在一起, 以尝试保留尽可能多的可用空间。这称为压缩。压缩发生在 jvm 处于停止世界阶段时, 因为活动对象有可能移动到不同的物理内存位置。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 549
操作方式方法01【辅助widget】多种辅助工具相连接两个功能键的可同时按【Shift】加此功能键挑选出1、正方形、圆锥选框辅助工具 【M】 2、终端辅助工具 【V】 3、截叶......
2024-02-05 481
操作方式01文档格式难题qq肖像最合适用jpeg文档格式的相片,若是相片有透明化地下通道,能选用png文档格式上载。 02大小不一难题若是相片极重也可能将引致上载失利,检......
2024-02-05 405