我正在尝试更多地了解AWT / Swing的dispose()类的Window函数及其功能。想象一下以下一系列事件:
在使用GC之后,B是否会使用留下的非处置资源?
此外,对于Window衍生Z,如果有很多Z实例,JRE是否能够重用它们之间的窗口资源?
答案 0 :(得分:1)
这更多来自对记忆如何运作的一般理解,但是:
如果资源没有被处理掉,你就不能使用它们,因为它们仍然被占用。当资源没有被处理/垃圾收集/释放时,它们不可用,因为还有其他东西耗尽了那个内存。但是,一旦它超出范围,它实际上应该被处理掉。如果不是,则在JVM中会产生memory leak。
对于第二部分,如果您指的是项目之间的内存块,则完全取决于是否有足够的空间。同样,我不是100%关于JVM如何管理内存,但是如果你需要两块内存而Z1
和Z2
之间只有一个块,那么它就需要一个连续的空间在记忆中。