티스토리 뷰
오늘은 자바의 초기화 블록인 '인스턴스 초기화 블록'과 '정적 초기화 블록'에 대해서 정리해보려고 한다.
먼저 각각의 의미부터 알고가자.
■ 인스턴스 초기화 블록
▶ 의미 : 객체(new)가 만들어질 때마다 실행되는 코드 블록
▶ 용도 : 모든 생성자에서 공통으로 실행해야 하는 초기화 코드를 넣을 때
예제)
public class InstanceInitExample {
String name;
// ★★ 인스턴스 초기화 블록 ★★
{
name = "씹덕"; // 객체 만들 때마다 실행됨
}
// 생성자
public InstanceInitExample(String name) {
this.name = name;
}
public static void main(String[] args) {
InstanceInitExample e1 = new InstanceInitExample("Alice");
System.out.println("e1.name = " + e1.name);
}
}
// 결과)
// e1.name = 씹덕
■ 정적 초기화 블록
▶ 의미 : 클래스가 JVM에 처음 로드될 때 실행되는 코드 블록
▶ 용도 : static 변수 값 넣어두기, 프로그램 시작할 때 한 번만 연결해야 하는 DB 연결
예제)
public class StaticInitExample {
static int staticCount;
// ★★ 정적 초기화 블록 ★★
static {
staticCount = 100; // 클래스 로드 시 딱 1번만 실행됨
}
public static void main(String[] args) {
System.out.println("staticCount = " + staticCount);
System.out.println("staticCount = " + staticCount); // 다시 호출해도 블록 실행 안 됨!!
}
}
// 결과)
// staticCount = 100
// staticCount = 100
---------------------
현재 하고 있는 도서관 관리 프로젝트가 뭔가 망하고 있는 느낌이다.... 마무리 작업을 하고 있는데 에러의 연속에 코드가 엉망진창으로 꼬였다.....
어떻게 해야할까............. 🤔😮🫥
'Java' 카테고리의 다른 글
| 자바 - 배열, 컬렉션 개념 정리 및 차이점 (6) | 2025.08.27 |
|---|---|
| 자바 - try-catch구문에서, catch 는 여러개 사용가능! (0) | 2025.08.26 |
| 자바 - throw 키워드와 try-catch 구문의 추가적 이해( 예외 객체 담아오기 ) (0) | 2025.08.21 |
| 자바 - inner class (4) | 2025.08.18 |
| 자바 - 파일명과 public 일치해야함!! (1) | 2025.08.18 |