我创建了 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
该引用指向的是eligible
for Garbage Collection
。
但这完全取决于它被JVM
它占据的时候。releases
memory
object
可能是当JVM
看到memory
越来越低,然后它可以kick off
释放garbage collector
一些内存。但这完全是一个后台进程。你不必担心这一点。此外,如果您想明确告诉JVM
回忆内存,那么您可以添加对System.gc()
. 但同样 JVM 不会立即启动该Garbage Collection
进程。那只会开启JVM
。
Java 中的内存由垃圾收集器(一个查找无法访问的对象并返回其内存以供使用的进程)回收,您无需显式将对象设置为 null 即可发生这种情况。
当我在 A 类的对象中分配 null 时,它可以释放该对象的内存
是的,它可以,但它不会释放内存,直到它必须。