Estou fazendo uns testes, e vi algo que não entendi bem.
O programa:
public static void main(String[] args) {
for (int i = 0; true; i++) {
System.out.println(i);
JDialog d = new JDialog();
d.setVisible(true);
d.setVisible(false);
}
}
roda eternamente, sem travar o sistema. Enquanto o programa:
public static void main(String[] args) {
for (int i = 0; true; i++) {
System.out.println(i);
JOptionPane optionPane = new JOptionPane();
JDialog d = optionPane.createDialog("");
d.setVisible(true);
d.setVisible(false);
}
}
trava (no meu pc, que tem 2G de ram, ele gera OutOfMemoryError no índice 625).
Tentei ver alguma variável estática no JOptionPane fazendo referência a JDialog, mas não é isso não…
Alguém sabe explicar?