我的java游戏应用程序中存在内存泄漏,我有点期待.泄漏来自在此按钮动作侦听器上多次创建的新实例,因为每次按下按钮都会创建一个新实例RegularMode:
btnRegular.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.remove(pane);
gm = Gamemode.REGULAR;
mode = new RegularMode(frame, WIDTH, HEIGHT);
}
});
Run Code Online (Sandbox Code Playgroud)
有趣的是,我一直试图修复内存泄漏,使用此代码:
public static void initDisplay() {
gm = Gamemode.NONE;
mode.setRunning(false);
frame.remove(mode.getPane());
frame.add(pane);
frame.validate();
frame.repaint();
mode = null; // THIS LINE
frame.pack();
}
Run Code Online (Sandbox Code Playgroud)
- 但它不起作用.有没有其他方法可以解决这种类型的内存泄漏?
我试图C:\用java来获取存储文件的普通路径.我正在尝试解决这个问题,因为其他资源没有告诉我,但他们正在使用其他路径.我知道如何让用户回家:
File f = new File(System.getProperty("user.home");
但这只会在用户的主文件夹中创建一个新文件C:\Users\<username>\.我如何C:\直接在驱动器中创建文件?