티스토리 뷰
변수와 메모리 관계
Program이 생행하여 process가 되어서 메모리에 로딩되는 순간 -> data 부분에 저장이 됩니다.
메모리는 code / data / stack 부분으로 되어 있고
code 부분은 heap 메모리를 사용하여 실행을 마치면 garbage s에 의해 소멸 됩니다.
data 부분은 program이 끝나서 memory에서 upload 되는 순간 없어진다.
(프로그램 꺼질때 없어지는 것)
변수 유형 | 선언 위치 | 사용 범위 | 메모리 | 생성 & 소멸 |
---|---|---|---|---|
지역 변수(local 변수) | 함수 내부 | 함수 내부에서만 사용 | stack | 함수가 호출될 때 생성되고 함수가 끝나면 소멸된다. |
멤버 변수(instance 변수) | class 멤버 변수로 선언 | class 내부에서 사용되고 private이 아니면 참조 변수로 다른 class에서 사용 가능 | heap | instance가 생성될 때 heap에 생성되고, garbage collecter가 메모리를 수고할 때 소멸된다. |
static 변수(class 변수) | static를 사용하여 class 내부에 선언 | class 내부에서 사용되고 private이 아니면 class이름으로 다른 class에서 사용 가능 | data 영역 | 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸된다. |
반응형
'Tip and Error > JAVA' 카테고리의 다른 글
Override (0) | 2021.04.08 |
---|---|
상속 & super() (0) | 2021.04.08 |
Singleton Pattern(싱글톤 패턴) (0) | 2021.04.07 |
get() / set() (0) | 2021.04.06 |
Access Modifier (접근 제어 지시자) (0) | 2021.04.06 |
공지사항
최근에 올라온 글