私は Java の学習の初心者段階です。私が今まで読んだすべてのドキュメントで、Java はメモリ ポインターの代わりにセキュアな参照を使用してオブジェクトにアクセスすると述べています。また、メソッドが戻ると、そのローカル スコープの変数がガベージ コレクションの対象になります。
以下のコードでは、createFrame メソッドが返された後、JFrame オブジェクトがウィンドウと共に破棄されないのはなぜでしょうか?
import javax.swing.*;
public class HelloJava {
public static void main( String[] args ) {
createFrame();
}
private static void createFrame() {
JFrame frame = new JFrame( "Hello, Java!" );
JLabel label = new JLabel( "Hello, Java!", JLabel.CENTER );
frame.getContentPane().add( label );
frame.setSize( 300, 300 );
frame.setVisible( true );
}
}
ウィンドウが表示されるだけでなく、ドラッグ、最大化、最小化など、そのウィンドウですべてのアクションを実行できます。