//실행 순서: (우선순위가 높은 것부터 낮음.)
정적 코드 블록>mian 방식>생성 코드 블록>생성 방식.
정적 코드 블록은 한 번만 실행됩니다. 생성 코드 블록은 객체가 생성될 때마다 실행됩니다.
1. 일반 코드 블록
public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } //new A(); { System.out.println("这里是普通代码块B"); } }
실행 결과: 일반 코드 블록 A입니다
일반 코드 블록 B입니다
2. 정적 코드 블록 및 생성된 코드 블록
java에서 static 키워드를 사용하여 선언된 코드 블록.
은 클래스를 초기화하는 데 자주 사용됩니다. JVM이 정적 코드를 실행하기 때문에 각 정적 코드 블록은 한 번만 실행됩니다(클래스가 메모리에 로드될 때 클래스는 이미 존재함). 클래스 코드 블록을 로드할 때 정적 코드 블록이 기본 메서드보다 먼저 실행됩니다. 클래스에 여러 정적 코드 블록이 포함된 경우 먼저 정의된 코드가 먼저 실행되고 나중에 정의된 코드가 실행됩니다.
ps:
1 정적 코드 블록은 어떤 메서드에도 존재할 수 없습니다.
2 정적 코드 블록은 정적 인스턴스 변수 및 인스턴스 메서드에 직접 액세스할 수 없습니다. 클래스의 인스턴스 개체를 통해 액세스해야 합니다. static 키워드를 추가하지 않고 클래스에 직접 정의합니다. 생성 코드 블록은 객체가 생성될 때 호출되며 객체가 생성될 때마다 호출되며 생성 코드 블록의 실행 순서가 클래스 생성자보다 우선합니다.
public class structure { { System.out.println("这里是普通代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行 } public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } new structure();//第二次类加载时静态代码块不执行 //new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } }
여기에 정적 코드 블록이 있습니다 // 기본 함수보다 우선합니다
여기에 일반 코드 블록 A가 있습니다 여기에 일반 코드 블록이 있습니다 / / 클래스 객체가 생성될 때마다 실행됩니다. 새로운 구조체를 추가합니다(). 실행 결과는 다음과 같습니다.
다음은 일반 코드 블록 B입니다.
3. 요약 요약
public class structure { { System.out.println("这里是普通代码块"); } public static void main(String[] args) { { System.out.println("这里是普通代码块A"); } //new structure(); //new structure(); new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } } class A{ static{ System.out.println("这里是A中的普静态代码块1"); } { System.out.println("这里是A中的普通代码块1"); } { System.out.println("这里是A中的普通代码块2"); } }
정적 코드 블록입니다
일반 코드 블록 A이것은 A에 있습니다 일반 정적 코드 블록 1
여기 A에 일반 코드 블록 1이 있습니다
여기에 일반 코드 블록 B가 있습니다
우선순위 요약: 정적 코드 블록>Main()>구성된 코드 블록
Java의 일반 코드 블록, 구성 코드 블록 및 정적 코드 블록에 대한 보다 심층적인 분석을 위해서는 비용을 지불하세요. PHP 중국어 사이트 주목