정적 메서드 및 정적 블록
정적 메서드는 클래스에 속하며 클래스와 함께 메모리에 로드되므로 객체를 생성하지 않고도 호출할 수 있습니다. (클래스 이름을 참조로 사용).
반면 정적 차단 정적 키워드가 있는 코드 블록입니다. 일반적으로 정적 멤버를 초기화하는 데 사용됩니다. JVM은 클래스 로딩 시 메인 메소드보다 먼저 정적 블록을 실행한다.
예시
public class Sample { static int num = 50; static { System.out.println("Hello this is a static block"); } public static void demo() { System.out.println("Contents of the static method"); } public static void main(String args[]) { Sample.demo(); } }
출력
Hello this is a static block Contents of the static method
정적 블록 및 정적 메서드에 대한 제한
정적 방법
-
정적 컨텍스트에서 비정적 멤버(메서드 또는 변수)에 액세스할 수 없습니다.
-
this 및 super는 정적 컨텍스트에서 사용할 수 없습니다.
-
정적 메소드는 정적 유형 데이터(정적 유형 인스턴스 변수)에만 액세스할 수 있습니다.
-
정적 메서드를 재정의할 수 없습니다. 숨길 수 있습니다.
정적 블록
-
정적 블록에서는 아무 것도 반환할 수 없습니다.
-
정적 블록을 명시적으로 호출할 수 없습니다.
-
정적 블록에서 예외가 발생하면 try-catch 쌍으로 이를 래핑해야 합니다. 던질 수 없습니다.
-
수퍼 를 사용할 수 없습니다. 정적 블록 내부의 키워드.
-
정적 블록의 경우 실행 순서를 동적으로 제어할 수 없으며 선언된 순서대로 실행됩니다.