これは何ですか?
public class ABC {
public ABC() {
System.out.println("world");
}
static {
System.out.println("hello");
}
}
印刷します:hello world
私はこれ、または静的コードがどのような方法であるかを本当に理解していません。
これは何ですか?
public class ABC {
public ABC() {
System.out.println("world");
}
static {
System.out.println("hello");
}
}
印刷します:hello world
私はこれ、または静的コードがどのような方法であるかを本当に理解していません。
これは「静的初期化ブロック」と呼ばれます。
クラスが最初にロードされたときに実行されます。1回だけ。
たとえば、クラスがインスタンス化されるたびにコンストラクターが実行されます。静的ブロックは、VM/クラスローダーによって最初に静的にロードされたときに1回だけ実行されます。
静的ブロックは、クラスローダーがクラスをロードするたびに1回だけ実行されることに注意してください。これは、複数のクラスローダーがある場合、ブロックが複数回実行される可能性があることを意味します。