java에는 C스타일 전역변수가 없다
대신 static 변수로 전역처럼 동작하는 변수를 만든다
메소드는 생명주기가 LIFO방식이라
지역변수와 매개변수가 스택에 저장된다
변수 종류 총정리 — (메모리 기준 완벽 체계)
✅ 메모리별 분해 설명
1. Stack 영역
- 지역 변수(Local Variable)
- 매개변수(Parameter Variable)
- 메서드 호출 시 메모리에 push되고, 종료되면 pop
- 스코프(범위) 내에서만 유효
2. Heap 영역
- 인스턴스 변수(필드)
- new 키워드로 객체 생성 시 할당
- JVM Garbage Collector가 참조 끊기면 자동 소멸
3. Method Area (클래스 메타 정보 영역)
- 클래스 변수(Static Field)
- 클래스가 로딩될 때 단 1회 할당
- 모든 객체가 공유
- 프로그램 종료 시까지 유지
⚡️ 대표 예제
인스턴스 변수 vs 클래스 변수 차이
🎯 클래스 변수(static 필드)란?
✅ static 키워드를 붙여서 선언한 변수
✅ "인스턴스가 아니라 클래스 자체에 속하는 변수"
예시
'언어 > Java' 카테고리의 다른 글
2장: 데이터 타입과 연산자 (1) | 2025.04.28 |
---|---|
1장 Java Fundamentals (0) | 2025.04.28 |
Java 스트림 API (0) | 2025.03.17 |
Java 컬렉션 (0) | 2025.03.17 |
Java 예외처리 (0) | 2025.03.16 |