uncategorized

java memory ๊ตฌ์กฐ

date: 2018-12-13 16:15:25

๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

JVM์€ OS๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜๋ˆ„์–ด๊ด€๋ฆฌํ•œ๋‹ค.
์ด ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์€โ€ฆ Runtime Data Area ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ด๋ฅผ 5๊ฐœ ์˜์—ญ์œผ๋กœ ์ชผ๊ฐœ์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

  • Method Area(=Class Area)
  • Stack Area
  • Heap Area
  • Native Method Stack Area
  • PC Register

ํฌ๊ฒŒ๋Š” ๋ฉ”์†Œ๋“œ์˜์—ญ, ์Šคํƒ์˜์—ญ, ํž™์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

๋ฉ”์†Œ๋“œ ์˜์—ญ

ํด๋ž˜์Šค ํŒŒ์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๊ฐ€ ๋กœ๋“œ๋˜๋Š” ๊ณณ

์Šคํƒ ์˜์—ญ

์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋œ๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰๊ณผ์ •์—์„œ ์ž„์‹œ๋กœ ํ• ๋‹น๋˜๊ณ  ๊ทธ๊ฒŒ ๋๋‚˜๋ฉด ์†Œ๋ฉธ๋˜๋Š” ๊ฒƒ๋“ค์ด ์ €์žฅ๋œ๋‹ค.
์ฆ‰ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ ๋•Œ๋งˆ๋‹ค ๊ทธ ๋ฉ”์†Œ๋“œ์˜ ๋กœ์ปฌ ๋ณ€์ˆ˜๋ฅผ ์ค€๋น„ํ•˜๊ณ , ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์ด ๋๋‚˜๋ฉด ๊ทธ ๋ฉ”์†Œ๋“œ๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ–ˆ๋˜ ๋ชจ๋“ ๋ณ€์ˆ˜๊ฐ€ ์Šคํƒ์—์„œ ์ œ๊ฑฐ ๋œ๋‹ค.

์ฐธ์กฐ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋Š” ์Šคํƒ์˜์—ญ์— ์ €์žฅ๋˜์ง€๋งŒ, ๊ทธ ์ฃผ์†Œ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ชจ๋‘ ํž™ ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.

ํž™ ์˜์—ญ

ํ”ํžˆ ์ฝ”๋“œ์—์„œ new ๋ช…๋ น์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋†“์ธ๋‹ค.
ํž™ ์˜์—ญ์— ๋ณด๊ด€๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์ด ๋๋‚˜๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์œ ์ง€๋œ๋‹ค.
์–ธ์ œ๊นŒ์ง€?
๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด์„œ ์ง€์›Œ์งˆ๋•Œ ๊นŒ์ง€..

์ฐธ๊ณ 

8๊ฐ€์ง€ ์›์‹œํƒ€์ž…(primitive type).. byte, short, int, long, float, double, char, boolean..
์„ ์ œ์™ธํ•œ ๊ทธ์™ธ์˜ ํƒ€์ž…์œผ๋กœ ์ •์˜๋œ ๋ณ€์ˆ˜๋“ค์€ ๋ชจ์กฐ๋ฆฌ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜, ์ฆ‰ ์ฐธ์กฐ๋ณ€์ˆ˜์ด๋‹ค.

Primitive์™€ Boxed Primitives ๋‘˜ ์ค‘ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?
์Šคํƒ ์˜์—ญ์— ์ €์žฅ๋˜๋Š” Primitive(๊ธฐ๋ณธ์ž๋ฃŒํ˜•)๊ณผ ํž™์˜์—ญ์— ์ €์žฅ๋˜๋Š” Boxed Primitives(๊ฐ์ฒดํ˜•)๊ฐ„์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ๊ณผ ์ ‘๊ทผ์†๋„๋ฉด์—์„œ Primitive Type์ด ๋›ฐ์–ด๋‚˜๋‹ค.

reference

tags:

Share