GC 垃圾回收器

 

哪些可以作为GC Roots

1.虚拟机栈(栈帧中的本地变量表)中引用的对象

2.方法区中类静态属性引用的对象

3.方法区中引用的对象,如字符串常量池(String Table

引用

4.本地方法栈中JNI引用的对象

5.Java虚拟机内部的引用,如基本数据类型对应的Class对象以及一些常驻的异常对象等

6.所有同步锁持有的对象

7.反应Java虚拟机内部情况的JMXBeanJVMTI中注册的回调、本地代码缓存

前提:

  Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间。当然,程序员可以在Java程序中显式地使用System.gc()Runtime.getRuntime().gc()来通知垃圾回收程序,至于垃圾回收程序运不运行,什么时候运行,都是无法控制的。

如果对象引用被置为null,垃圾收集立即释放对象占用的内存

而会在下一个垃圾回收周期中,这个对象将是可被回收的.

是可被回收的:并不是说下一个回收周期,一定去释放。释放针对的是一段已被使用的内存,

回收是垃圾收集器的一个动作,结果就是释放内存。

 

 标记清除

标记压缩 

复制算法

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值