728x90
프로그램을 구동하기 위해서 운영체제가 메모리(RAM)에 데이터 및 명령어를 저장할 공간을 할당하여 줌
메모리 공간은 크게 Static, Stack, Heap 영역으로 구분되고 데이터타입(자료형)에 따라 나눠서 할당됨
java 파일은 크게 필드(field), 생성자(constructor), 메소드(method)로 구성됨
▒ Static area (스태틱 메모리 영역)
- 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형)가 저장되는 공간
- Static 영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 남아있음. 그래서 static 메모리에 있는 데이터들은 프로그램이 종료될 때까지 어디서든 사용이 가능함
- static 데이터를 무분별하게 많이 사용할 경우 메모리 부족 우려 존재
▒ Stack area (스택 메모리 영역)
- 메소드 내에서 정의하는 기본 자료형에 해당되는 지역변수의 데이터 값이 저장되는 공간
- 메소드가 호출 될 때 메모리에 할당되고 종료되면 메모리에서 사라짐
▒ Heap area (힙 메모리 영역)
- 참조형(Reference Type) 데이터 타입을 갖는 객체(인스턴스), 배열 등이 저장 되는 공간
- 참조형 객체 경우 실제 데이터를 갖고 있는 Heap 영역의 참조 값을 Stack 영역의 객체가 갖고 있음
728x90
'[자바] > 자바 문법' 카테고리의 다른 글
[Java] 배열 복사 Arrays.copyOf() vs System.arraycopy() (0) | 2021.10.31 |
---|---|
[Java] Vector 와 ArrayList 차이 (0) | 2021.10.24 |
[Java] return (0) | 2021.10.23 |
[Java] autoboxing, unboxing 이란? (0) | 2021.10.22 |
[Java] Integer.parseInt, Integer.valoueOf 차이 (0) | 2021.10.22 |