Учитывая вызов invokeLater()
, вызов в GC, вероятно, произойдет 1-го 1 .
Кстати - звонить по номеру Runtime.gc()
обычно бессмысленно, JRE не будет собирать GC, пока в этом нет необходимости.
- Е.Г.
выход
GC called
Frame visible
код
package test;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class VisibleFrameGC {
VisibleFrameGC() {
JFrame jf = new JFrame("Demo");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(100, 100);
jf.setVisible(true);
System.out.println("Frame visible");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new VisibleFrameGC();
}
});
Runtime.getRuntime().gc();
System.out.println("GC called");
}
}