static block은 static 변수에 대한 초기화를 진행할 수 있다: public class hello { static int a; static { a = 500; System.out.println(a); } public static void main(String[] args) { System.out.println("Hello"); } } 클래스 필드와 클래스 메서드는 실행이 가능하도록 올라가고, static 블록의 코드가 실행되어 그 값을 초기화한다. 그 다음 JVM은 메인 메서드를 찾아 실행한다: static하므로 객체를 생성하지 않고도 실행할 수 있다. 따라서: a값을 출력 후, "Hello"