언어/Java
[JVM]static heap stack
불면증김씨
2022. 1. 24. 17:49
메모리는 컴퓨터의 저장 영역이다.
서랍처럼 있는데 그곳에 데이터를 넣어둘 수 있다. 그리고 그 서랍에는 각자의 주소가 있다.
연산을 할때 cpu가 필요하다.
커피 빨리 마시기 게임을 예로 설명해보자
참가자는 커피머신에 가서 커피를 받아와서 커피 마시기(행위)를 한다. 그리고 그 시간을 체크한다.
여기에서 커피머신,참가자,커피,시간 모두가 메모리에 올라와야한다.
왜? 메모리에 올라와야 연산을 할 수 있기 때문에
-커피머신: 게임 시작전부터 끝까지 있어야한다.( static 영역 )
=>생명주기가 길다. 부하가 제일 크다.
-참가자, 커피: 게임이 시작할 때 메모리(heap영역)에 올라오지만 커피를 다 마시고 전광판에 기록되는 순간 필요 없게 되며 heap영역에서 사라진다. 동적으로 메모리에 떴다가 어느 순간 사라진다. ( heap 영역 )
=>생명주기가 짧다.
-커피 마시는 행위: 커피 마시는 행위가 시작할 때 stack에 시작시간이 저장된다. 그리고 커피 마시기가 끝나는 시간이 저장된다. Cpu는 두 시간을 가지고 연산을 하고 전광판에 시간을 전광판에 기록한다. 그리고나서 stack에 올라온 시간은 사라지게 된다. ( stack 영역 )
=>생명주기가 가장 짧다.