728x90
반응형
메모리의 사용 영역을 알기전에,
자료형은 크게 기본 자료형과 참조 자료형으로 나뉜다.
기본 자료형 8개(int, long, char ... 등)의 이름은 모두 소문자로 시작하는 반면,
참조 자료형은 모두 대문자(String, System, ...등)은 모두 대문자로 시작한다.
기본 자료형은 스택 메모리에 생성된 공간에 실제 변숫값을 저장하는 반면,
참조 자료형은 실제 데이터 값은 힙 메모리에 저장하고, 스택 메모리의 변수 공간에는 실제 변숫값이 저장된 힙 메모리의 위칫값을 저장한다.
클래스(Class)영역, 메소드(Method)영역, 상수(Final)영역, 정적(Static)영역
- Static 영역이라고도 부르며, 전역 변수와 정적 멤버변수 (static 변수)가 저장되는 영역.
스택 (Stack)영역
- 지역변수, 인자 값, 리턴 값이 저장되는 영역이다. 메소드 안에서 사용되는 기본형 변수(int, long, boolean 등)들이 값과 함께 저장되고 Heap 영역에 생성된 객체들을 참조하는 주소값이 할당된다.
힙(Heap)영역
- 모든 인스턴스 변수(객체)들이 저장되는 영역이며, 자바에서는 new를 사용해 객체를 생성하면 힙 영역에 저장된다. 힙 영역은 메모리 공간이 동적으로 할당되고 해제되며 메모리의 낮은 주소에서부터 높은 주소로 할랑이 이루어진다.
참조하는 변수나 필드가 없으면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM은 Garbage Collector를 실행시켜 힙 영역에서 자동으로 제거한다.
728x90
반응형
'✨ Java > etc' 카테고리의 다른 글
자바(JAVA) - 문자열(String) 메소드 - charAt(), replace(), substring(), indexOf(), contains(), split() (0) | 2023.07.13 |
---|---|
자바(JAVA) - 퀵 정렬(Quick Sort) (0) | 2023.07.12 |
자바(JAVA) - 2Tier , 3Tier (0) | 2023.07.10 |
자바(JAVA) - 자료의 형 변환(자료형) 업캐스팅, 다운캐스팅 (0) | 2023.07.09 |
자바(JAVA) - IS-A관계와 HAS-A 관계 (0) | 2023.07.07 |
댓글