본문 바로가기
Java/Java

[Java] 자바의 메모리 모델

by 기록하는_사람 2022. 10. 17.

Java 프로그램 실행 구조

📌 메인 메모리(Main Memory)

: 프로그램의 실행에 필요한 메모리 공간.

  = 램.(RAM)

 

📌 운영체제

: 메모리를 효율적으로 사용하기 위해 메모리 관리함.

  예. 윈도우, 리눅스 등

  → 운영체제가 응용 프로그램에 메모리를 할당해줌. 

 

📌 자바의 특징 : 자바의 가상 머신은 운영체제 위에서 동작한다. 

: 운영체제가 Java Virtual Machine(자바 가상 머신) 을 실행시키고, Java Virtual Machine이 Java 프로그램을 실행시킴.

  따라서,  Java Virtual Machine(자바 가상 머신) 은 운영체제가 할당하는 메모리 공간을 기반으로 스스로를 실행 시킴.

 

자바의 메모리 모델

📌 자바의 메모리 모델

: 자바 가상 머신의 메모리 관리 방식.

 

📌 자바의 메모리 모델의 구조

① 메소드 영역(Method Area) : 메소드의 바이트 코드, static 변수

② 스택 영역(Stack Area) : 지역 변수, 매개 변수 

③ 힙 영역(Heap Area) : 인스턴스

 

메소드 영역(Method Area)

📌 메소드 영역(Method Area)

: 특정 클래스의 정보가 메모리 공간에 올려질 때 채워지는 영역.

  메소드의 바이트 코드, static 변수

 

💡 바이트 코드(Bytecode)

: 자바 가상 머신이 실행할 수 있는 바이너리 코드.

  .class 파일에 저장됨.

  메모리 공간에 존재해야 실행 가능. 

 

스택 영역(Stack Area)

📌 스택 영역(Stack Area)

: 중괄호 내에 할당된 후 중괄호를 벗어나면 소멸되는 데이터들을 저장하기 위한 영역.

  지역 변수, 매개 변수(→ 중괄호 내에서만 유효한 변수들.)

 

힙 영역(Heap Area)

📌 힙 영역(Heap Area)

: 인스턴스

 

📌 참조 변수는 스택 영역에 할당되고, 인스턴스는 힙 영역에 할당됨.

      스택 영역에 있는 참조 변수는 힙 영역에 있는 인스턴스를 참조함. 

 

📌 힙 영역에 있는 인스턴스는 가상 머신에 의해 자동으로 소멸됨.

 

📌 어떤 참조 변수도 참조하지 않은 상태의 인스턴스 = 소멸 대상

 

📌 가비지 컬렉션(Garbage Collection)

: 인스턴스 소멸 방식. 

  소멸 대상이 되었다고 바로 소멸되진 않음.

  별도의 알고리즘을 기반으로 가비지 컬렉션(Garbage Collection)이 수행됨. 

 

 

 

 

 

 

 

'Java > Java' 카테고리의 다른 글

[Java] 래퍼 클래스(Wrapper 클래스)  (0) 2022.10.17
[Java] Object 클래스  (0) 2022.10.17
[Java] 인터페이스(interface)  (1) 2022.10.15
[Java] 템플릿 메서드  (0) 2022.10.15
[Java] 추상 클래스(Abstract Class)  (0) 2022.10.15

댓글