- 举个例子
- Test t = new Test();
- t = null;
- 现在没有地址指向了,这块空间是无用的,垃圾回收器是立即执行吗?
- 我遇到一个问题
- for(i=0;i<5;i++)
- {
- List list = 查数据();
- //写数据
- }
- 循环在进来,就堆溢出,按道理来讲,list出了作用域,内存空间就没了,每次查的数据都是一样的,怎么还会溢出呢?
- 我猜测List出了作用域 没有被回收,导致空间还是被占用,所以在查数据的时候,上次没释放,这次又新增,内存才会溢出
- 所以垃圾回收机制,不是立刻执行的
复制代码
其实在老毕的视频里就讲到了,垃圾回收机制其实就是将堆内存中不被引用的数据通过系统不定时的自动清理,以前是我们程序员做的事情,发展到现在更方便由计算机自行去做,免得我们人会忘记 |