我想知道JFrame的remove(Component comp)方法的使用是否从内存中释放组件并将其销毁或是否继续使用?我担心内存泄漏,我无法找到oracle's documentation
的线索答案 0 :(得分:2)
JFrame.remove仅从JFrame中删除组件。
是否从内存中删除组件取决于是否有对该对象的任何其他引用。
如果JFrame是引用该组件的最后一件事,那么该组件将被Java的垃圾回收删除。
如果您的代码中的其他位置还有另一个活动引用,则在对其进行垃圾回收之前,您还需要删除该引用。
(理论上...... Java可能会也可能不会Garbage收集你的对象,因为它认为合适。但是当你内存不足时它往往更具攻击性,并且通常可以信任以继续工作)
答案 1 :(得分:1)
Java具有垃圾收集器,用于收集未使用的对象并将其删除。除非您通过JNI调用C / C ++方法,否则您不必担心它。如果这些方法创建自己的对象但不删除它们,则可能会发生内存泄漏。