정적 차단이란 무엇입니까?


우수 답변

정적 차단 {}

  1. 정적 블록은 클래스의 정적 데이터를 초기화하는 데 사용되며 정적 리소스를 생성합니다.
  2. 정적 블록은 클래스가 메모리에로드되는 즉시 한 번만 실행됩니다.
  3. li>
  4. 정적 블록은 JavaClass 로더에 의해 main () 메서드 이전에 실행됩니다.
  5. 클래스는 여러 정적 블록을 가질 수 있으며, 이는 프로그램에 기록 된 것과 동일한 순서로 실행됩니다. .
  6. 정적 {}, 클래스가로드 될 때마다 실행됩니다.
  7. 정적 메서드와 비 정적 메서드 내에 정적 블록을 작성할 수 없습니다 (정적 블록은 별도로 작성됩니다). )
  8. 정적 블록 내에서는 정적 변수 만 액세스 할 수 있습니다.
  9. 정적 블록 내에서 정적 메서드를 호출 할 수 있습니다.
  10. 내부에 어떤 메서드도 만들 수 없습니다. 정적 블록.
  11. 비 정적 변수 및 비 정적 메서드는 내부에서 액세스 할 수 없습니다. 정적 블록.
  12. 정적 블록 내부의 비 정적 변수 또는 메서드에 액세스하려고하면 컴파일 시간 오류가 발생합니다.

staticblock 유형에서 비 정적 메서드 wow ()에 대한 정적 참조를 만들 수 없습니다.

아래의 정적 블록 예제를 고려하세요.

  • 클래스 내부에는 정적 블록 {}이 하나 있습니다.
  • 정적 메서드와 정적 블록에서 액세스되는 두 개의 정적 변수 “ss, j”가 선언되어 있습니다.
  • 정적 메서드 disp ()가 작성되고 그 안에 정적 변수가 인쇄됩니다.
  • 이 메서드는 정적 블록 내에서 호출됩니다 {}
  • 정적 변수 및 정적 메서드는 정적 블록 내에서만 액세스 가능

public class staticblock {

static int ss=23; // initialize the static variable with value;

public static void disp() {

System.out.println("runnin static block before main method");

System.out.println("Value inside static method is "+ss);

}

static int j;

static // static block

{

j=8;

System.out.println("static block is invoked with the value"+j); // access the static variable inside static block

disp(); // calling the static method inside static block

}

public static void main(String[] args) {

}

}

출력 확인

정적 블록이 value8로 호출 됨

기본 메서드 이전에 정적 블록 실행

정적 메서드 내부의 값은 23입니다.

Answer

정적 블록은 정적 초기화 블록 , 클래스는 임의의 수의 정적 블록을 가질 수 있으며 Java 클래스 내부 어디에나 나타날 수 있습니다.

이 블록은 클래스가 lo 일 때 실행됩니다. 기억에 남습니다. 자바 런타임 시스템은 정적 초기화 블록이 소스 코드에 나타나는 순서대로 호출되도록 보장합니다.

예 :

public class Solution{

static {

System.out.println("Static block - 1");

}

static {

System.out.println("Static block - 2");

}

public static void main(String[] args){

System.out.println("Main Method");

}

static {

System.out.println("Static block - 3");

}

}

출력 :

Static block - 1

Static block - 2

Static block - 3

Main Method

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다