Java Memory Area
Last updated
Last updated
Method Area
JVM์ด ์คํ๋๋ฉด์ ์๊ธฐ๋ ๊ณต๊ฐ
Class ์ ๋ณด, ์ ์ญ ๋ณ์ ์ ๋ณด, Static ๋ณ์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
Runtime Constant Pool
๋ง ๊ทธ๋๋ก ์์๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
๋ชจ๋ thread์์ ์ ๋ณด๊ฐ ๊ณต์ ๋๋ค
Heap
new ์ฐ์ฐ์๋ก ์์ฑ๋ ๊ฐ์ฒด, Array์ ๊ฐ์ด ๋์ ์ผ๋ก ์์ฑ๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
Heap ์์ญ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ GC๊ฐ ์ฒ๋ฆฌํ์ง ์๋ํ, ์๋ฉธ๋์ง ์๋๋ค
Reference Type
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
๋ชจ๋ thread์์ ์ ๋ณด๊ฐ ๊ณต์ ๋๋ค
Stack
์ง์ญ๋ณ์, method์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด ์ ์ ์ฌ์ฉ๋๊ณ ํ์ ์์ด์ง๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
LIFO (Last In First Out)
๊ตฌ์กฐ๋ก, ๋์ค์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ค
๋ง์ฝ ์ง์ญ๋ณ์์ง๋ง, Reference Type์ผ ๊ฒฝ์ฐ์๋ Heap์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ฃผ์๊ฐ์ Stack์ ์ ์ฅํด์ ์ฌ์ฉํ๊ฒ ๋๋ค
๊ธฐ๋ณธํ (Primitive Type)
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
Thread๋ง๋ค ํ๋์ฉ ์กด์ฌํ๋ค
PC Register
Thread๊ฐ ์์ฑ๋๋ฉด์ ์๊ธฐ๋ ๊ณต๊ฐ
Thread๊ฐ ์ด๋ค ๋ช ๋ น์ด๋ฅผ ์ฒ๋ฆฌํ๊ณ ์๋์ง, ๊ทธ ์ฃผ์๋ฅผ ๋ฑ๋กํ๋ค
JVM์ด ์คํํ๊ณ ์๋ ํ์ฌ ์์น๋ฅผ ์ ์ฅํ๋ ์ญํ
Native Method Stack
Java๊ฐ ์๋ ์ธ์ด (C, C++) ๋ก ๊ตฌ์ฑ๋ method์ ์คํ์ด ํ์ํ ๋ ์ฌ์ฉ๋๋ ๊ณต๊ฐ