http://www.yes24.com/Product/Goods/17350624
(스프링 입문을 위한 자바 객체 지향의 원리와 이해, 2015)을 학습하고 개인 학습용으로 정리한 내용입니다.
프로그램이 메모리를 사용할 때 코드 실행 영역과 데이터 저장 영역으로 나뉜다.
데이터 저장 영역은 스태틱, 스택, 힙 영역으로 나뉜다.
스태틱 - 클래스를 위한 장소
스택 - 메서드를 위한 장소
힙 - 객체를 위한 장소
public class Memory{
static int share;
public static void main(String[] args) {
int num = 6;
System.out.println(num);
func(num);
}
private static void func(int num) {
int num2 = num + 4;
System.out.println(num2);
}
}
위와 같은 자바 코드를 실행할 때 일어나는 일
- JRE가 JVM 실행
- JVM이 전처리(java.lang패키지와 import한 패키지, 프로그램의 모든 클래스를 스태틱 영역에 배치)
- Memory의 클래스의 share 변수가 스태틱 영역의 Memory의 멤버로 들어감
- main 함수 실행되면서 스택 영역에 main 스택 프레임 생성
- 스택 프레임 안에 num 변수 생성
- func 함수 실행되면서 스택 영역에 func 스택 프레임 생성
- 스택 프레임 안에 num, num2 변수 생성
- func 함수 종료되면서 스택에서 사라짐
- main 스택 프레임 사라짐
- JRE가 JVM 종료, JRE도 운영체제 메모리에서 사라짐
'책 > 기술 관련' 카테고리의 다른 글
자바 객체지향의 원리와 이해 07. 스프링 삼각형과 설정 정보 (0) | 2022.02.19 |
---|---|
자바 객체지향의 원리와 이해 06. 디자인 패턴 (0) | 2022.02.10 |
자바 객체지향의 원리와 이해 05. SOLID (0) | 2022.02.10 |
자바 객체지향의 원리와 이해 03. 자바와 객체 지향 (0) | 2022.02.08 |