我创建了 A 类的对象。当时 java 占用了 A 类的内存。但是当我在 A 类的对象中分配 null 时,它可以释放该对象的内存
class A{
public long num = 28115733;
}
我创建了 A 类的对象。当时 java 占用了 A 类的内存。但是当我在 A 类的对象中分配 null 时,它可以释放该对象的内存
class A{
public long num = 28115733;
}
如果将 A 类引用的 Object 分配给 null,则 Object A 有资格进行 GC(它可能不会立即释放内存)。
何时释放内存取决于所使用的 JVM 和垃圾收集器 (GC) 算法。
你不能确定这一点。当您分配null给 anobject reference时,object该引用指向的是eligiblefor Garbage Collection。
但这完全取决于它被JVM它占据的时候。releasesmemoryobject
可能是当JVM看到memory越来越低,然后它可以kick off释放garbage collector一些内存。但这完全是一个后台进程。你不必担心这一点。此外,如果您想明确告诉JVM回忆内存,那么您可以添加对System.gc(). 但同样 JVM 不会立即启动该Garbage Collection进程。那只会开启JVM。
Java 中的内存由垃圾收集器(一个查找无法访问的对象并返回其内存以供使用的进程)回收,您无需显式将对象设置为 null 即可发生这种情况。
当我在 A 类的对象中分配 null 时,它可以释放该对象的内存
是的,它可以,但它不会释放内存,直到它必须。