Programming/Java 11

[20211214 TIL] [์‹œํ์–ด์ฝ”๋”ฉ] ๋„(Null)ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ (NULL Pointer Dereference)

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ์—์„œ ์ฐธ ์™ธ์šฐ๊ธฐ ํž˜๋“ค์—ˆ๋˜, ์‹œํ์–ด์ฝ”๋”ฉ. ์‹ค๋ฌด์—์„œ ๋ณด๋‹ˆ๊นŒ ์ •๋ง ๋ฐ˜๊ฐ€์› ๋‹ค. ์‹œํ์–ด์ฝ”๋”ฉ์ด ์ด๋ ‡๊ฒŒ ์“ฐ์ด๋Š” ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค. ๋ฌผ๋ก  ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œํ์–ด์ฝ”๋”ฉ ๊ฐ€์ด๋“œ์— ๋งž๊ฒŒ ์ฝ”๋”ฉํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋“ค๋„ ์žˆ๋‹ค. ํ˜„ํšŒ์‚ฌ์—์„œ๋Š” ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์ด ๋ชจ๋‘ ๋๋‚œ ํ›„์— ์‹œํ์–ด์ฝ”๋”ฉ์„ ํ•ด์ฃผ๋Š” ํšŒ์‚ฌ์—์„œ ์‹œํ์–ด์ฝ”๋”ฉ ์ ๊ฒ€์„ ๋ฐ›์•˜๋‹ค. ์—…์ฒด์ธก์—์„œ ๋ณด๊ณ ์„œ๊ฐ€ ๋‚ ๋ผ์™”๊ณ  ๊ทธ ๋ณด๊ณ ์„œ์—๋Š” ์‹œํ์–ด์ฝ”๋”ฉ์„ ์ง€ํ‚ค์ง€ ๋ชปํ•œ ๋ณด์•ˆ์•ฝ์ ๋“ค์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์ ํ˜€์žˆ์—ˆ๋‹ค. ๋‚˜๋„ ๊ทธ ๋ณด์•ˆ์•ฝ์ ์„ ์ˆ˜์ •ํ•˜๋Š” ์—ญํ• ์„ ๋งก์•˜๋‹ค. ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„์€ ๋„ ํฌ์ธํ„ฐ ์—ญ ์ฐธ์กฐ์— ๋Œ€ํ•œ ๋ณด์•ˆ์•ฝ์ ์ด์—ˆ๋‹ค. Q. ๋„(Null)ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ๋ž€? '์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ ๊ฐ์ฒด๊ฐ€ Null์ด ๋  ์ˆ˜ ์—†๋‹ค'๋ผ๊ณ  ํ•˜๋Š” ๊ฐ€์ •์„ ์œ„๋ฐ˜ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ Null ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ ๊ฒฐ๊ณผ..

Programming/Java 2021.12.14