static block & instance block


static block
  • クラスをロードし、クラス変数を準備して自動的に実行するブロック
  • の1つのクラスに複数の静的ブロックを入れることができる.
  • 用途
  • は主にクラス変数を初期化するためのコードである.
  • 用法
  • public class Person{
    	static String name; 
    	static{
    		name = "김민혁";
    	}
    }
  • 実行順
  • ロード
  • クラス
  • クラス変数がある場合は、メモリが生成されます.
  • 静的ブロックは、宣言された順序で実行される.
  • クラス・ロード・プロシージャ
  • JREライブラリフォルダでクラスを検索します.
  • がない場合は、CLASSSPATH環境変数で指定したフォルダでクラスを検索します.
  • が見つかった場合、クラスファイルが正しいバイトコードであることを確認します.
  • 正しいバイトコードである場合、ファイルはメソッド領域
  • にロードされる.
  • クラスブロックがある場合、ブロックは順次実行される.
  • クラスに静的ブロックがある場合、ブロックは順次実行される.
  • instance blcok
  • インスタンスの作成後に自動的に実行されるブロック
  • の1つのクラスに複数のインスタンスブロックを入れることができる.
  • 用途
  • インスタンス変数を初期化するコードを配置します.
  • どのコンストラクション関数が呼び出されても、その前に共通に初期化したい操作があれば、インスタンスブロックで処理できます.
  • 用法
  • public class Person {
    static String name;
    int age;
    {
    // 인스턴스 블록
    this.age= 30;
    }