[Java] ๋ถˆ๋ณ€ ๊ฐ์ฒด(Immutable Object)์™€ final
ยท
Java
๋ถˆ๋ณ€ ๊ฐ์ฒด๋ž€?๋ถˆ๋ณ€ ๊ฐ์ฒด(immutable object)๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ์ดํ›„ ๋‚ด๋ถ€ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.์ž๋ฐ”์—์„œ ๋Œ€ํ‘œ์ ์ธ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ๋Š” String์ด ์žˆ๋‹ค. String์€ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•ด์„œ ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค. ๋ฌธ์ž์—ด์„ ‘์ˆ˜์ •’ํ•˜๋Š” ๋ชจ๋“  ์—ฐ์‚ฐ์€ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. String์€ ์–ด๋–ป๊ฒŒ ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ• ๊นŒ?1๏ธโƒฃ ๋‚ด๋ถ€ ํ•„๋“œ์— final์ด ๋ถ™๋Š”๋‹ค.private final byte[] value;์—ฌ๊ธฐ์„œ ํ•„๋“œ์— private final์ด ๋ถ™์œผ๋ฉด, ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ์ƒ์„ฑ ์ดํ›„ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋กœ ์žฌํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด์ด ๋ฐ”๋€” ์ˆ˜๊ฐ€ ์—†๋‹ค. 2๏ธโƒฃ ๋‚ด๋ถ€ ๋ฐฐ์—ด์„ ์™ธ๋ถ€์— ๋…ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค.String์—๋Š” ๋‚ด๋ถ€ ๋ฐฐ์—ด์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ..