我注意到我创建的所有 Swing 应用程序似乎都在不断地分配新对象。
考虑这个小应用程序:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings({ "javadoc", "serial" })
public class SwingTest extends JFrame {
public static void main(String[] args) {
new SwingTest().setVisible(true);
}
public SwingTest() {
setTitle("SwingTest");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 400));
setContentPane(panel);
pack();
}
}
我不希望它消耗太多内存,但是如果我查看 VisualVM 中的堆图,我会看到内存使用量不断增加,然后重置。这是什么原因造成的?