java 内存回收(GC)的方式
2024-10-19 02:20:40
java内存的管理其实就是对象内存的管理,其中包括对象的分配和释放
对应程序员来说分配对象使用new关键字,而释放一个对象只需要让它等于null,让程序不能再访问这个对象,这时对象是不可达的,GC负责回收不可达的对象。
当程序员创建一个对象时,GC就开始监控对象的大小、地址、使用情况。程序一般通过有向图的方式管理堆中的所有对象,通过这种方式确定哪些对象是可达的,哪些对象是不可达的。
由于在程序GC时程序会停止运行,用户可以感知,所以当GC运行时间过长的时候用户感知到程序停止运行,但是当GC运行时间过短,内存回收率会变低,表示大量内存没有被回收,程序仍然占用着大量内存,所以在设计GC的时候必须在停顿时间和回收率上做一个权衡。
1、增量式GC
通过一定的算法把一个长的中断划分为多个小的中断,减少GC对用户程序的影响;将堆中的所有对象按照创建和使用进行分组,将使用频率较高和相关的对象分在一组,随着程序的运行不断对分组进行调整,当GC运行时它总是回收最近最少访问的对象,如果整组都为可回收对象,那么整组回收
最新文章
- composer 代码库管理
- Atitit.去除水印的方案
- Java虚拟机的功能
- PL/SQL编程基础
- 【poj3208-Apocalypse Someday】数位DP
- HDU 5703 Desert (找规律)
- P55、面试题6:重建二叉树
- C#中通过调用Dll函数时,执行一段时间后,就会报内存可能被破坏的错的解决办法
- noip 2012 开车旅行
- [转]C++堆和栈的区别
- Nvidia显卡怎样查看显存大小及硬件相关信息
- Sql Server之数据库规范——1、自动化规范命名
- 记JavaScript的入门学习(二)
- 【面向对象设计原则】之接口隔离原则(ISP)
- springboot情操陶冶-初识springboot
- 快速掌握JavaScript面试基础知识(二)
- JaxbUtil转json转XML工具类
- 使用getCurrentPosition方法实时获取当前Geolocation信息(附源码文件)--html5、JavaScript
- day6-if,while,for的快速掌握
- (转)explain、db2exfmt 命令的使用:文本输出执行计划