JFrame.remove(组件comp)"破坏"我的组件?

时间:2014-09-26 14:11:08

标签: java oracle swing memory-leaks

我想知道JFrame的remove(Component comp)方法的使用是否从内存中释放组件并将其销毁或是否继续使用?我担心内存泄漏,我无法找到oracle's documentation

的线索

2 个答案:

答案 0 :(得分:2)

JFrame.remove仅从JFrame中删除组件。

是否从内存中删除组件取决于是否有对该对象的任何其他引用。

如果JFrame是引用该组件的最后一件事,那么该组件将被Java的垃圾回收删除。

如果您的代码中的其他位置还有另一个活动引用,则在对其进行垃圾回收之前,您还需要删除该引用。

(理论上...... Java可能会也可能不会Garbage收集你的对象,因为它认为合适。但是当你内存不足时它往往更具攻击性,并且通常可以信任以继续工作)

答案 1 :(得分:1)

Java具有垃圾收集器,用于收集未使用的对象并将其删除。除非您通过JNI调用C / C ++方法,否则您不必担心它。如果这些方法创建自己的对象但不删除它们,则可能会发生内存泄漏。