【问题标题】:Can Java reuse non-disposed system GUI resources?Java 可以重用未释放的系统 GUI 资源吗?
【发布时间】:2011-01-11 02:18:27
【问题描述】:

我试图更多地了解 AWT/Swing 的 Window 类的 dispose() 函数及其作用。想象以下一系列事件:

  1. Window 衍生 X 的实例 A 在超出范围后被垃圾回收。在垃圾回收之前调用 Dispose。
  2. 创建并显示了 X、B 的新实例。

B 是否使用 A 被 GC 后留下的未处置资源?

另外,对于一个Window导数Z,如果Z的实例很多,JRE能否在它们之间复用窗口资源?

【问题讨论】:

    标签: java user-interface memory-management garbage-collection dispose


    【解决方案1】:

    这更多来自对内存工作原理的一般理解,但是:

    如果资源没有被处理掉,你就不能使用它们,因为它们还在被占用。当资源没有被处理/垃圾收集/释放时,它们不可用,因为还有其他东西用完了该内存。但是,一旦超出范围,它实际上应该被处理掉。如果不是,那么在 JVM 中会导致 memory leak

    对于第二部分,如果您的意思是项目之间的内存块,这完全取决于是否有足够的空间。同样,我不是 100% 了解 JVM 如何管理内存,但如果您需要两块内存并且在 Z1Z2 之间只有一个块,那么不,它需要一个连续的内存空间。

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2015-06-21
      相关资源
      最近更新 更多