Java에서 자주 마주치는 static 키워드, 정확히 어떤 역할을 하고 어떻게 동작할까요?
이번 포스트에서는 static 키워드의 메모리 구조, 특징, 사용 예시까지 한 번에 정리해 드립니다.
| 클래스 자체 | Method Area (static 영역) | 클래스 정보 로드 |
| new 생성 객체 | Heap 영역 | Garbage Collector 관리 대상 |
| static 변수/메서드 | Method Area (static 영역) | 프로그램 종료 시까지 유지 |
🔸 static은 GC의 대상이 아니며, 모든 인스턴스가 공유합니다.
public class Calculator {
public static String calName = "myBoard";
public static int add(int x, int y) {
return x + y;
}
public int min(int x, int y) {
return x - y;
}
}
☑ 사용 예시
Calculator.add(5, 1); // ✅ 객체 없이 사용 가능
Calculator.min(5, 1); // ❌ 오류 (static 아님)
Calculator cal = new Calculator();
cal.add(5, 1); // 가능은 하지만 ❗비권장
cal.min(5, 1); // 정상 사용
| ☕ Java 가비지 컬렉션(GC) 동작 원리 쉽게 정리! (0) | 2022.11.21 |
|---|---|
| 📌접근자란? Getter와 Setter 개념과 Java 예제로 쉽게 이해하기 (0) | 2022.10.31 |
| 💡 프로그램 vs 프로세스 vs 스레드 완전 정리 (자바 스레드 포함) (0) | 2022.10.29 |
| 📌 자바(Java)란 무엇인가? 객체지향 프로그래밍의 대표 주자 (0) | 2022.10.27 |
| 객체지향 언어란? 클래스와 객체 개념부터 자바 예제까지 쉽게 정리 (0) | 2022.10.27 |