๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2025/06/17 (2)

Unfazedโ—๏ธ๐ŸŽฏ

JVM ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ

๊ฐ์ฒด ์ƒ์„ฑ์˜ ์ „์ฒด ๊ณผ์ •1. ํด๋ž˜์Šค ๋กœ๋”ฉ ๋ฐ ๊ฒ€์ฆ ๋‹จ๊ณ„Person person = new Person("Alice", 25); ์œ„ ํ•œ ์ค„์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ JVM์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.์‹ฌ๋ณผ ์ฐธ์กฐ ํ™•์ธ: new ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ƒ์ˆ˜ ํ’€์˜ ์˜ฌ๋ฐ”๋ฅธ ํด๋ž˜์Šค ์ฐธ์กฐ์ธ์ง€ ํ™•์ธํด๋ž˜์Šค ์ƒํƒœ ๊ฒ€์ฆ: Person ํด๋ž˜์Šค๊ฐ€ ์ด๋ฏธ ๋กœ๋”ฉ(Loading), ํ•ด์„(Resolving), ์ดˆ๊ธฐํ™”(Initialization)๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•„์š”์‹œ ํด๋ž˜์Šค ๋กœ๋”ฉ: ์ค€๋น„๋˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋ผ๋ฉด ํด๋ž˜์Šค ๋กœ๋”๋ฅผ ํ†ตํ•ด ๋กœ๋”ฉ ์ˆ˜ํ–‰2. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋‹จ๊ณ„ํด๋ž˜์Šค ๋กœ๋”ฉ์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฐ์ฒด ํฌ๊ธฐ๋ฅผ ์ •ํ™•ํžˆ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ์œผ๋กœ ํž™์—์„œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹(ํฌ์ธํ„ฐ ๋ฐ€์น˜๊ธฐ, ์—ฌ์œ  ๋ชฉ๋ก)์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.2.1. ํฌ..

Java 2025. 6. 17. 19:40
JVM ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

JVM ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐJVM์˜ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ํฌ๊ฒŒ ์Šค๋ ˆ๋“œ ๊ณต์œ  ์˜์—ญ๊ณผ ์Šค๋ ˆ๋“œ ๊ฐœ๋ณ„ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์˜์—ญ๋ฉ”์„œ๋“œ ์˜์—ญ (Method Area)ํž™ (Heap)์Šค๋ ˆ๋“œ๋ณ„ ๊ฐœ๋ณ„ ์˜์—ญํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ (PC Register)๊ฐ€์ƒ ๋จธ์‹  ์Šคํƒ (JVM Stack)๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ ์Šคํƒ (Native Method Stack)๊ฐ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ƒ์„ธ ๋ถ„์„1. ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ (PC Register)์—ญํ• : ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฐ”์ดํŠธ์ฝ”๋“œ์˜ ์ค„ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญํŠน์ง•:๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌ์ž๋ฐ” ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์‹œ: ๋ฐ”์ดํŠธ์ฝ”๋“œ ๋ช…๋ น์–ด ์ฃผ์†Œ ์ €์žฅ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ ์‹คํ–‰ ์‹œ: Undefined ์ƒํƒœ์œ ์ผํ•˜๊ฒŒ OutOfMemoryError ์กฐ๊ฑด์ด ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์˜์—ญ2. ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹  ์Šคํƒ (..

Java 2025. 6. 17. 17:42