타입에 따른 분류
- Primitive Type variable
- 기본 8가지 type의 변수
- Reference Type variable
- 나머지 모든 것
선언 위치에 따른 분류
- 멤버 변수
- 클래스 멤버 변수
- 선언 위치 : 클래스 영역 (static keyword)
- 인스턴스 멤버 변수
- 선언 위치 : 클래스 영역
- 클래스 멤버 변수
- 지역 변수
- 지역 변수
- 함수 내부
- 파라미터 변수
- 함수 선언부
- 지역 변수
인스턴스 멤버 변수
- 선언 위치
- 클래스 {} 영역에 선언
- 변수의 생성
- 객체가 만들어 질 때 객체별로 생성됨
- 생성 메모리 영역 : heap
- 객체가 만들어 질 때 객체별로 생성됨
- 변수의 초기화
- 타입 별로 default 초기화
- 변수로의 접근
- 객체 생성 후 객체 이름으로 접근
- 소멸 시점
- Garbage Collector에 의해 객체가 없어질 때 소멸
- 프로그래머가 명시적으로 소멸시키는 것이 불가능
클래스 멤버 변수
- 선언 위치
- 클래스 {} 영역에 선언
- static(정적) 키워드를 붙여야 함
- 변수의 생성
- 클래스 영역에 클래스 로딩 시 메모리 등록
- 개별 객체의 생성과 무관
- 모든 객체가 공유하게 되는 변수
- 클래스 영역에 클래스 로딩 시 메모리 등록
- 변수의 초기화
- 타입 별로 default 초기화
- 변수로의 접근
- 객체 생성과 무관하게 클래스 이름으로 접근
- 객체를 생성하고 객체 이름으로도 접근이 가능 하나 static에 부합한 표현은 아님
- 객체 생성과 무관하게 클래스 이름으로 접근
- 소멸 시점
- 프로그램 종료시에 소멸
지역변수 / 파라미터 변수
- 선언 위치
- 클래스 영역의 {} 이외의 모든 중괄호 안에 선언되는 변수들
- 변수의 생성
- 선언된 라인이 실행될 때
- 생성 메모리 영역
- thread 별로 생성된 stack 영역
- 변수의 초기화
- 사용하기 전 명시적 초기화 필요
- 변수로의 접근
- 외부에서는 접근이 불가하므로 소속 명시 불필요
- 소멸 시점
- 선언된 영역인 {} 를 벗어날 때
'정리 > Java' 카테고리의 다른 글
상속 (0) | 2023.03.07 |
---|---|
Java 메서드 (0) | 2023.03.07 |
JVM의 메모리 구조 (0) | 2023.03.07 |
객체지향 프로그래밍 (Objected Oriented Programming) (0) | 2023.03.07 |
Java 연산자 / 제어, 반복문 / 배열 (0) | 2023.03.07 |