반응형
클래스 멤버 변수, 인스턴스 멤버 변수 구분하기
인스턴스 변수는 인스턴스가 생성될 때마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 공통된 값을 갖는다.
변수의 종류 | 선언위치 | 생성시기 |
클래스 변수 | 클래스 영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 | 인스턴스 생성되었을 때 | |
지역변수 | 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) | 변수 선언문이 수행되었을 때 |
클래스 멤버 변수 : static 키워드 사용.
- 클래스를 통해 접근
- 클래스 영역에 클래스 로딩되는 시점에 메모리에 생성
- 프로그램 종료시 삭제
인스턴스 멤버 변수 : static 키워드 사용 X.
- 객체를 통해 접근
- 배열처럼 자동 초기화. 힙 공간에 만들어짐.
- 객체 생성 시 생성. 객체 별로 생성 가능
- 객체가 없어지는 가비지 컬렉션이 일어나는 시점에 삭제
반응형
'코딩기록 > 자바' 카테고리의 다른 글
[자바의 정석] 지네릭스 (0) | 2024.01.24 |
---|---|
자바 정렬 방법 (0) | 2023.03.17 |
[이것이 자바다] Ch6. 클래스 (0) | 2023.03.07 |
[이것이 자바다] Ch5. 참조타입 (0) | 2023.01.20 |
[이것이 자바다] Ch4. 조건문과 반복문 (0) | 2023.01.17 |