はじめに

Javaにおいて、static変数に他のインスタンスへの参照型を格納する場合等、static変数の初期化を行う必要があります。

このページでは、static変数の初期化について説明します。

static変数の初期化用の専用ルーチン

Java言語では、static変数の初期化用の専用ルーチンとして「static」ルーチンが用意されています。

サンプルコード
class Content
{
    public Content()
    {
        System.out.println("Content() が呼ばれました。");
    }

    public void print()
    {
        System.out.println("Contentのインスタンスです。");
    }
}

class Constants
{
    public static Content content;

    static
    {
        content=new Content();
    }
}

class EntryPoint
{
    public static void main(String[] aArguments)
    {
        System.out.println("mainメソッドが開始されました。");
        Constants.content.print();
        System.out.println("mainメソッドが終了します。");
    }
}

このプログラムをコンパイル/実行した結果は、下記の通りです。

実行結果
mainメソッドが開始されました。
Content() が呼ばれました。
Contentのインスタンスです。
mainメソッドが終了します。

「static」ルーチンは、上記の例のように、第三者のクラスからそのクラスがはじめてアクセスされた際に呼び出されます。

このような実装を取ることにより、プログラム起動時の余計な初期化処理とメモリの使用量を抑えているようです、よくできてますね。


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まさにこれだ
1 (50%)
これじゃない
1 (50%)

表示できるメッセージはありません。