Hallo,
wann wird denn in Java 1.6 ein Fenster wieder freigegeben, so dass es keinen
Speicher mehr belegt?
Hier ein Beispiel:
Sehr merkwürdig, oder?
Diese Problem existiert nicht nur bei einem JFrame, ...
wann wird denn in Java 1.6 ein Fenster wieder freigegeben, so dass es keinen
Speicher mehr belegt?
Hier ein Beispiel:
Java:
public class MyFrame extends JFrame {
private static final long serialVersionUID = 1L;
public MyFrame(){
super("MyFrame");
setBounds(0, 0, 400, 400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
System.out.println("Windows: " + Window.getWindows().length);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
frame.dispose();
frame = null;
System.gc();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
Thread.yield();
System.out.println("Windows: " + Window.getWindows().length);
Window[] windows = Window.getWindows();
for(int i=0;i<windows.length;i++){
Window win = windows[i];
if(win instanceof MyFrame){
System.out.println("is MyFrame");
System.out.println("is null: "+(win==null));
System.out.println("is visible: "+win.isVisible());
win.setVisible(true);
}
}
}
}
Sehr merkwürdig, oder?
Diese Problem existiert nicht nur bei einem JFrame, ...