-5

我创建了 A 类的对象。当时 java 占用了 A 类的内存。但是当我在 A 类的对象中分配 null 时,它可以释放该对象的内存

class A{
    public long num = 28115733;

}
4

4 回答 4

6

如果将 A 类引用的 Object 分配给 null,则 Object A 有资格进行 GC(它可能不会立即释放内存)。

何时释放内存取决于所使用的 JVM 和垃圾收集器 (GC) 算法。

于 2012-10-19T14:09:01.343 回答
2

你不能确定这一点。当您分配null给 anobject reference时,object该引用指向的是eligiblefor Garbage Collection

但这完全取决于它被JVM它占据的时候。releasesmemoryobject

可能是当JVM看到memory越来越低,然后它可以kick off释放garbage collector一些内存。但这完全是一个后台进程。你不必担心这一点。此外,如果您想明确告诉JVM回忆内存,那么您可以添加对System.gc(). 但同样 JVM 不会立即启动该Garbage Collection进程。那只会开启JVM

于 2012-10-19T14:08:50.360 回答
0

Java 中的内存由垃圾收集器(一个查找无法访问的对象并返回其内存以供使用的进程)回收,您无需显式将对象设置为 null 即可发生这种情况。

于 2012-10-19T14:10:07.613 回答
0

当我在 A 类的对象中分配 null 时,它可以释放该对象的内存

是的,它可以,但它不会释放内存,直到它必须。

于 2012-10-19T14:09:15.117 回答