2021/05/08 2

F005 - Stack & Heap Memory

โœ๏ธ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์„ ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋‹ˆ Stack๊ณผ Heap ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋„ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์ฒซ ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์— ์ด ๋‘˜์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•ด ๋ณต์Šต์„ ํ•˜๊ธด ํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค. ๋˜, ์‹ค๋ฌด์—์„œ ์ด์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์ œ๋Œ€๋กœ ์žกํžˆ์ง€ ์•Š์•„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹ค์ˆ˜๋ฅผ ๊ฒฝํ—˜ํ•œ ์ ์ด ์žˆ๋‹ค. ์•ž์œผ๋กœ ์ด๋Ÿฐ ์‹ค์ˆ˜๋ฅผ ๋‹ค์‹œ ๋˜ํ’€์ดํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋Œ€๋žต์ ์œผ๋กœ๋งŒ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„๋ณด์ž! Stack Memory ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ฐ’๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋œ๋‹ค. ์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ ํ• ๋‹น๋œ Heap Memory์˜ ์ฐธ์กฐ๊ฐ’๊ณผ ํ• ๋‹น๋œ๋‹ค. ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ๊ฐ์ž์˜ Stack Memory ์˜์—ญ์„ ๊ฐ€์ง„๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜, ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ์ž์‹ ์ด ์†ํ•œ ๊ณณ์˜ ์Šค์ฝ”ํ”„๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์‚ฌ๋ผ์ง„๋‹ค. public class StackMemoryTest ..

Programming/Java 2021.05.08

F004 - Reference Type

โœ๏ธ ๋“œ๋””์–ด ์ฒซ ๋ฉ˜ํ† ๋ง์„ ์‹œ์ž‘ํ–ˆ๋‹ค! ์—ฌ๋Ÿฌ ๋Œ€ํ™”๊ฐ€ ์˜ค๊ฐ”์ง€๋งŒ, ๊ฐ€์žฅ ์ž์‹  ์—†์—ˆ๋˜ ์ฐธ์กฐ ํƒ€์ž…๊ณผ ํ•ด๋‹น ํƒ€์ž…์ด ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์–ด๋–ป๊ฒŒ ์šด์šฉ๋˜๋Š”์ง€ ๊ธฐ๋กํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์™œ๋ƒ๋ฉด ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ํ•ด๋‹น ์งˆ๋ฌธ์„ ์ฃผ์…จ๋Š”๋ฐ ๋Œ€๋‹ต์„ ์ž˜๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ๋˜์งš์–ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค๊ณ  ํ•œ๋‹ค. ์ฐธ์กฐ ์ž๋ฃŒํ˜• ์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ ์•ž์„œ ๊ณต๋ถ€ํ•œ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ž๋ฃŒํ˜•์„ ๋œปํ•œ๋‹ค. ๋‹ค๋งŒ String ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Literal ํ˜•ํƒœ๋กœ ๋ณ€์ˆ˜๊ฐ’์„ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ๊ณ , + ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ ์œ ์ผํ•œ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ด๋‹ค. ๋ชจ๋“  ์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ java.lang.Object ๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์—๋Š” Annotation(@์ฃผ์„) Arrays(๋ฐฐ์—ด) Class Enum Interface ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ฐธ์กฐ ์ž๋ฃŒํ˜•๊ณผ ๊ธฐ..

Programming/Java 2021.05.08