下午好,直截了当,我的应用程序中有一堆场景,每个场景都是它自己的对象,它自己的层次结构是自然创建的,等等。为了从任何地方访问这些对象,我制作了一个单独的类,它存储了对每个对象的一个引用,并将对该类的一个对象的引用传递给每个场景。这样的事情是,当我搬到一个新的场景时,前一个对我来说已经没用了,我希望他们不要占用内存空间,因为。再加上所有的领域,他们可以占据相当多的空间。然后我想到了finalize()。如果在进行场景更改时,在被更改的场景上调用此方法会有所帮助吗?
下午好,直截了当,我的应用程序中有一堆场景,每个场景都是它自己的对象,它自己的层次结构是自然创建的,等等。为了从任何地方访问这些对象,我制作了一个单独的类,它存储了对每个对象的一个引用,并将对该类的一个对象的引用传递给每个场景。这样的事情是,当我搬到一个新的场景时,前一个对我来说已经没用了,我希望他们不要占用内存空间,因为。再加上所有的领域,他们可以占据相当多的空间。然后我想到了finalize()。如果在进行场景更改时,在被更改的场景上调用此方法会有所帮助吗?
不。所有对象都被GC(垃圾收集器)移除,只能移除对对象的引用,将对象留给GC。当内存被填满到一定限度时,GC 会自行清理所有内容。
我能给你的唯一建议是调用 System.gc() - 通过这样做,你将要求收集器收集无法访问的对象。
但是如果应用程序没有问题,那么你不应该创建它们。除非有必要,否则不应尝试从代码管理 JVM 系统进程。