Java
Java static block 과 instance block
승모근뭉치
2023. 2. 17. 19:31
프로젝트 내 src 내 javabasic 패키지 내 BlockTest.java
package javabasic;
public class BlockTest {// 요 클래스가 로딩이 되는 시간 즉, .class파일이 만들어질
// 때가 되겠죠 클래스 파일이 생성이 되면 이때 생성이 되고 그 클래스파일을 이용해서 인스턴스를 생성하는
// 부분이 메인에 두번 있다.
static { // static은 클래스가 메모리에 로딩이 될때 요 초기화 블럭이 가장 먼저 수행됨
// static 부는 처음 메모리에 로딩이 될때 (클래스가) 딱 한번만 수행이 된다.
System.out.println("초기화 블럭 실행");
} // 클래스 초기화 블럭(main 보다 더 빨리 실행된다) 요 static이라는 블럭안에서
// driver를 모두 생성한다라는 것
{
System.out.println("인스턴스 블럭 실행");
}
// 생성자, 요 인스턴스 생성자보다 인스턴스 블럭(바로위)이 더 먼저 실행된다.(순서가)
// 생성자보다 더 먼저 인스턴스블럭이 생성이 된다는거
public BlockTest() {
System.out.println("BlockTest 생성");
}
public static void main(String[] args) {// 메인메소드는 클래스가 다
// 로딩이 되고 나서 수행이 된다
// TODO Auto-generated method stub
System.out.println("BlockTest bloc = new BlockTest();");
BlockTest bloc = new BlockTest();// 인스턴스가 생성될때 인스턴스 블럭이 실행되는데
System.out.println("BlockTest bloc2 = new BlockTest();");
BlockTest bloc2 = new BlockTest();
}
}
실행 결과
초기화 블럭 실행
BlockTest bloc = new BlockTest();
인스턴스 블럭 실행
BlockTest 생성
BlockTest bloc2 = new BlockTest();
인스턴스 블럭 실행
BlockTest 생성