티스토리 뷰
또 자바 문법 정리이다....
체스게임을 만들어야지 생각한지 한 4일 정도 지났는데, 인터페이스 개념부터 시작해서 계속 문법 공부만 하고 있는거 같다.......
이번 포스팅에서 정리할 내용은 다음과 같다.
"정적 초기화 블록", "인스턴스 초기화 블록" 이다.
먼저 정적 초기화 블록부터 정리해보자.
■ 정적 초기화 블록(Static Initialization Block) 이란?
▶ 클래스가 처음 메모리에 로드될 때 단 한 번 실행되는 코드 블록
static { ~~~~ }
- 이렇게 쓴다.
- 클래스가 JVM에 의해 로드될 때, 즉 프로그램이 시작할 때 1번 실행된다.
- 언제 사용하냐??
→ static 필드 값을 복잡한 계산이나 파일 읽기, DB 연결 같은 초기화가 필요할 때 쓰기 좋다고 한다.
- 작성한 순서대로 실행된다.
바로 예제를 통해서 이해해보도록 하자.
public class Example {
static int num;
// 정적 초기화 블록
static {
System.out.println("static 블록 실행!");
num = 100;
}
public static void main(String[] args) {
System.out.println("num = " + num);
}
}
--------------
// static 블록 실행!
// num = 100
뭐, 어려운 개념은 아니어서 이정도만 적겠다.
다음은 인스턴스 초기화 블록이다.
■ 인스턴스 초기화 블록(Instance Initialization Block) 이란??
▶ 객체가 new로 생성될 때마다 실행되는 블록이다.
- 생성자가 호출되기 직전에 실행된다.
- 여러 생성자가 있을 때, 공통된 초기화 로직을 넣어두면 코드 중복을 줄일 수 있다.
예제로 이해하자....!
public class Example {
int value;
// 인스턴스 초기화 블록
{
System.out.println("인스턴스 초기화 블록 실행!");
value = 10;
}
public Example() {
System.out.println("생성자 실행!");
}
public static void main(String[] args) {
Example e1 = new Example();
}
}
-------------
// 인스턴스 초기화 블록 실행!
// 생성자 실행!
-------------------------
( 잠시 python 모드 )
---------------------------
| for i in range(100) :
| print("힘들다!")
---------------------------
'Java' 카테고리의 다른 글
| 자바 - Switch Expression 정리 (1) | 2025.09.17 |
|---|---|
| 자바 - 바인딩(Binding)에 대해서 알아보기......... ( 정적 바인딩(Static Binding)과 동적 바인딩(Dynamic Binding) ) (0) | 2025.09.13 |
| 자바 - super 키워드 (0) | 2025.09.10 |
| 자바 - 변수타입 vs 실제 객체타입 (0) | 2025.09.10 |
| 자바 - 추상 클래스 정리 (1) | 2025.09.10 |