상세 컨텐츠

본문 제목

자바 메모리 구조 (Java Memory structure)- Stack Memory

Coding (코딩)/Java (자바)

by 매일매일 배우는 개발자 2021. 3. 29. 12:00

본문

728x90

Stack 이미지

 

자바(JVM)에서는 애플리케이션을 효율적으로 실행하기 위해 메모리를 스택 과 힙 메모리로 나눠서 관리합니다.

스택의 경우 수식계산, 수식괄호검사, 워드프로세서의 undo/redo (작업취소 및 되돌리기), 웹브라우저의 뒤로/앞으로 등에서 사용됩니다.

 

스택메모리는 정적 메모리 입니다

 

docs.oracle.com/javase/8/docs/api/ (자바8 API 입니다. 스택을 설명하고 있다.)

 

 

 

 

Stack Memory

  • 지역변수, 매개변수등 변수가 저장되는 영역입니다
  • 메서드의 정보가 저장되는 영역입니다
  • LIFO순서 입니다(Last-In-First-Out) ->먼저 들어온것이 나중에 나가는 순서입니다.
  • 새로운 메서드가 실행될때마다 스택 메모리영역에 자동으로 새 블럭이 생성됩니다.
  • 스택 메모리가 가득차면 Java는 java.lang.StackOverFlowError를 발생시킵니다.
  • 각각의 스레드는 하나의 스택영역을 가집니다.
  • pop(),push(),peek(),isEmpty() 4가지 기능을 제공합니다

스택 메서드 5가지

  • push(object item) - 맨 위에 객체를 하나 저장한다
  • pop() - 맨 위에 객체를 하나 추출한다
  • peek() - 맨 위에 객체 보기
  • isEmpty() - 스택 메모리가 비어있는지 확인
  • search(Object 0) - 스택에서 주어진 객체를 찾아 그 위치를 반환

 

 

 

 

class Person {
	int id;
	String name;
	
	public Person(int id, String name) {
		this.id = id;
		this.name = name;
	}
}
public class Stack {
    
	public static void main(String[] args) {
		
		int id = 23;
		String name = "Han";		
		
      
    }
}

 

Stack Memory
<Person Class>
id=23
name
this
<Main>
id = 23
Name 

Stack 메모리에서는 항상 Main 클래스가 먼저 쌓이고 그 다음 차례대로 Class가 쌓인다. 

 

728x90

'Coding (코딩) > Java (자바)' 카테고리의 다른 글

업캐스팅(Up Casting) / 다운캐스팅 (Down Casting)  (0) 2020.10.15
접근 제어자 (modifier)  (0) 2020.09.16
오버로딩 (Overloading)  (0) 2020.09.15
생성자 (Constructor)  (0) 2020.09.14
오버라이딩 - Overriding  (0) 2020.09.11

관련글 더보기