공부하다가 궁금한게 있는데
내가 수를 입력받아서 상수화 시키려고 했는데

인터넷 검색중에 보니까 클래스 만들고 안에 static final 상수를 만들었는데 이걸 클래스 안에 static {블라블라블라}  요딴식으로 초기화가 되네?
이거 개념좀 설명해줄사람

예제 소스는

public class AAA {
      public static final int TMP; //여기서 초기화 안하고

       static { //암꺼두 없이 static 요래 써놓고 대괄호로 묶으니까 뭔가 됨. 뭔지모르지만 뭔가됨 이 뭔지 모르는게 뭔지 알려줭
             Scanner sc = new Scanner(System.in);

             TMP = sc.nextInt();

      }
}

메인은 생략하고 대충 요런식인데 final이 내가 입력한 값으로 초기화가 된당께?!

대충 느낌이 static에 있는것들을 저 안에서 어찌저찌 하는거 같은데 뭔지 모르겠다 설명좀