我创建了A类的Object,那时java占用了A类的内存。但是当我在A类的对象中分配null时,它可以释放该对象的内存
class A{
public long num = 28115733;
}
答案 0 :(得分:6)
如果将A类引用的Object分配给null,则对象A对于GC 符合条件(它可能不会立即释放内存)。
当释放内存时,使用的是JVM和垃圾收集器(GC)算法。
答案 1 :(得分:2)
你无法确定。当您将null
分配给object reference
时,该引用所指向的object
为eligible
Garbage Collection
。
但JVM
完全取决于releases
memory
object
占用JVM
。
可能是memory
看到kick off
越来越低,然后garbage collector
可以JVM
释放一些内存。但这完全是一个后台进程。你不必担心。
此外,如果您想明确告诉System.gc()
重新收集内存,则可以添加对Garbage Collection
的调用。但JVM也不会立即启动JVM
进程。那只会在{{1}}上。
答案 2 :(得分:0)
当我在A类的对象中指定null时,它可以释放该对象的内存
是的,它可以,但它不会释放内存,直到它必须。
答案 3 :(得分:0)
垃圾收集器(一个查找无法访问的对象并返回其内存以供使用的进程)回收Java中的内存。您不需要将对象显式设置为null以使其发生。