๐ JAVA

์์์ ๊ณ ๋ คํด ์ค๊ณํ๊ณ ๋ฌธ์ํํ๋ผ. ๊ทธ๋ฌ์ง ์์๋ค๋ฉด ์์์ ๊ธ์งํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 19)]
์์์ ๊ณ ๋ คํด ์ค๊ณํ๊ณ ๋ฌธ์ํํ๋ ๋ฐฉ๋ฒ๋ค์ ์์๋ณด์. 1. ์์์ฉ ํด๋์ค๋ ์ฌ์ ์ํ ์ ์๋ ๋ฉ์๋๋ค์ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์ด์ฉํ๋์ง(์๊ธฐ ์ฌ์ฉ) ๋ฌธ์๋ก ๋จ๊ฒจ์ผ ํ๋ค. ๐บ ์ฌ์ ์ ๊ฐ๋ฅ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ ๋ชจ๋ ์ํฉ์ ๋ฌธ์๋ก ๋จ๊ฒจ์ผ ํ๋ค. ์ ๋ช ํ ๊ฒฉ์ธ ์ค ํ๋์ธ "์ข์ API ๋ฌธ์๋ '์ด๋ป๊ฒ'๊ฐ ์๋ '๋ฌด์'์ ํ๋์ง๋ฅผ ์ค๋ช ํด์ผ ํ๋ค"์ ๋์น๋๋ ๋ด์ฉ์ด๊ธฐ๋ ํ๋ค. ํ์ง๋ง ์์์ด ์บก์ํ๋ฅผ ํด์น๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ฅผ ์์ ํ๊ฒ ์์ํ ์ ์๋๋ก ํ๋ ค๋ฉด '์์๋ง ์๋์๋ค๋ฉด ๊ธฐ์ ํ์ง ์์์ด์ผ ํ ' ๋ด๋ถ ๊ตฌํ ๋ฐฉ์์ ์ค๋ช ํด์ผ ํ๋ค. AbstractCollection.java์ remove ๋ฉ์๋๋ฅผ ์ดํด๋ณด์. ์์ ๊ฐ์ด API ๋ฌธ์์ ๋ฉ์๋ ์ค๋ช ๋์ "Implementation Requirements"๊ฐ ๋ถ์ ๊ฑธ ๋ณผ..

์์๋ณด๋ค๋ ์ปดํฌ์ง์ ์ ์ฌ์ฉํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 18)]
์์์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฐ๋ ฅํ ์๋จ์ด์ง๋ง, ํญ์ ์ต์ ์ ์๋๋ค. ์๋ชป ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋ฅผ ๋ด๊ธฐ ์ฌ์ด ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ฒ ๋๋ค. ์์ ํด๋์ค์ ํ์ ํด๋์ค๋ฅผ ๋ชจ๋ ๊ฐ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํต์ ํ๋ ํจํค์ง ์์์๋ผ๋ฉด ์์๋ ์์ ํ ๋ฐฉ๋ฒ์ด๋ค. ํ์ฅํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์๊ณ ๋ฌธ์ํ๋ ์ ๋ ํด๋์ค๋ ๋ง์ฐฌ๊ฐ์ง ์์ ํ๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ํจํค์ง ๊ฒฝ๊ณ๋ฅผ ๋์ด, ์ฆ ๋ค๋ฅธ ํจํค์ง์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ํ๋ ์ผ์ ์ํํ๋ค. ์ฌ๊ธฐ์ ๋ค๋ฃฐ '์์'์ ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค๋ฅผ ํ์ฅํ๋ '๊ตฌํ ์์'์ ๋งํ๋ค. ํด๋์ค๊ฐ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ฑฐ๋ ์ธํฐํ์ด์ค๊ฐ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ๋ '์ธํฐํ์ด์ค ์์'๊ณผ๋ ๋ฌด๊ดํ ๊ฒ์ด๋ค. ๋ฉ์๋ ํธ์ถ๊ณผ ๋ฌ๋ฆฌ ์์์ ์บก์ํ๋ฅผ ๊นจ๋จ๋ฆฐ๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ 2๊ฐ์ง ์ด์ ์ ๋ํด์ ์์๋ณด๊ณ ํด๊ฒฐ์ฑ ์ ๋ํด์ ์..

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ)(3) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
์ด์ ๊ธ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ)(2) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ์ด๋ฒ ๊ธ์์๋ '๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ'์ ๋ํด์ ์์๋ณด์. 1. ์์์ ๋ง์ ์ ์๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ๐ฆ ์ด์ ๊ธ์ ํตํด ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ณด์ฅํ๋ ค๋ฉด ์์ ์ ์์ํ์ง ๋ชปํ๊ฒ ํด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค. ์์ ์ ์์ํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก final ํด๋์ค์ ๋ํด์ ์์๋ณด์๋ค. ํ์ง๋ง ๋ ์ ์ฐํ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ชจ๋ ์์ฑ์๋ฅผ private ํน์ package-private์ผ๋ก ๋ง๋ค๊ณ public ์ ์ ํฉํฐ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ด๋ค. // 1...

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ)(2) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
์ด์ ๊ธ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ์ด๋ฒ ๊ธ์์๋ ๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๊ทธ๋ฆฌ๊ณ ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์. 1. ์ฅ์ ๐ ๐ ์ฅ์ 1. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ํฉํ๋ค. public final class Complex { private final double re; private final double im; public Complex(double re, double im) { this.re = re; this.im = im; } public double realPart() { return re;} public double imaginaryPart() {return im;} public Complex pl..

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
๋ถ๋ณ ํด๋์ค๋ ์ธ์คํด์ค์ ๋ด๋ถ ๊ฐ์ ์์ ํ ์ ์๋ ํด๋์ค๋ฅผ ๋งํ๋ค. ๋ถ๋ณ ์ธ์คํด์ค์ ๊ฐ์ง๋ ์ ๋ณด๋ ๊ณ ์ ๋์ด ๊ฐ์ฒด๊ฐ ํ๊ดด๋ ์๊ฐ๊น์ง ์ ๋ ๋ฌ๋ผ์ง์ง ์๋๋ค. ๋ถ๋ณ ํด๋์ค๋ ๊ฐ๋ณ ํด๋์ค๋ณด๋ค ์ค๊ณํ๊ณ ๊ตฌํํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ค๋ฅ๊ฐ ์๊ธธ ์ฌ์ง๋ ์ ๊ณ ํจ์ฌ ์์ ํ๋ค๋ ์ด์ ์ด ์๋ค. ์์ดํ 17์์๋ ์๋ 3๊ฐ์ง ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์๋ค. ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น ๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ ์ด๋ฒ ๊ธ์์๋ '1. ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น'์ ๋ํด์ ์์๋ณด์. 1. ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ๐ public class PhoneNumber { private short areaCode, prefix, lineNum; pub..

public ํด๋์ค์์๋ public ํ๋๊ฐ ์๋ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 16)]
์ ๋ชฉ์์์ ๊ฐ์ด public ํด๋์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ public ํ๋๊ฐ ์๋ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค. 1. public ํด๋์ค์์ public ํ๋๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ๋ฌธ์ ์ ๐ฅ public class Point { public double x; public double y; } ์์ ๊ฐ์ ํด๋์ค๋ ๋ฐ์ดํฐ ํ๋์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฏ๋ก ์บก์ํ์ ์ด์ ์ ์ ๊ณตํ์ง ๋ชปํ๋ค. ๊ทธ์ ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ ๊ฐ์ง๊ฒ ๋๋ค. API๋ฅผ ์์ ํ์ง ์๊ณ ๋ ๋ด๋ถ ํํ์ ๋ฐ๊ฟ ์ ์๋ค. ๋ถ๋ณ์์ ๋ณด์ฅํ ์ ์๋ค. ์ธ๋ถ์์ ํ๋์ ์ ๊ทผํ ๋ ๋ถ์ ์์ ์ ์ํํ ์ ์๋ค. 2. public ํด๋์ค์์ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ์ด์ ๐ง public class Point { private double ..

ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 15)]
์ด๋ฒ ๊ธ์ ํตํด '์ ๋ณด ์๋์ ์ฅ์ '๊ณผ 'ํด๋์ค์ ์ธํฐํ์ด์ค', '๋ฉค๋ฒ(ํ๋, ๋ฉ์๋, ์ค์ฒฉ ํด๋์ค, ์ธํฐํ์ด์ค)'์ ์ ๊ทผ ์ ํ์ ์์น์ ๋ํด์ ์์๋ณด์. 1. ์ ๋ณด ์๋์ ์ฅ์ ๐ธ ์ ๋ณด ์๋์ ์ฅ์ ์ ์ ๋ง ๋ง์๋ฐ ๊ทธ์ค ๋๋ถ๋ถ์ ๊ตฌํ๊ณผ API๋ฅผ ๋ถ๋ฆฌ์์ผ์ ์ป๋ ์ด์ ๊ณผ ์ฐ๊ด๋์ด ์๋ค. ์ ๋ณด ์๋์ ์ฅ์ ์ ์๋์ ๊ฐ๋ค. ์์คํ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ธ๋ค. ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฐ๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์์คํ ๊ด๋ฆฌ ๋น์ฉ์ ๋ฎ์ถ๋ค. ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋นจ๋ฆฌ ํ์ ํ์ฌ ๋๋ฒ๊น ํ ์ ์๊ณ , ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก ๊ต์ฒดํ๋ ๋ถ๋ด๋ ์ ๊ธฐ ๋๋ฌธ์ด๋ค. ์ ๋ณด ์๋ ์์ฒด๊ฐ ์ฑ๋ฅ์ ๋์ฌ์ฃผ์ง๋ ์์ง๋ง, ์ฑ๋ฅ ์ต์ ํ์ ๋์์ ์ค๋ค. ์์ฑ๋ ์์คํ ์ ํ๋กํ์ผ๋งํด ์ต์ ํํ ์ปดํฌ๋ํธ๋ฅผ ์ ํ ๋ค์, ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ํด๋น ์ปดํฌ๋ํธ๋ง ์ต..

Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ คํ๋ผ - [3์ฅ. ๋ชจ๋ ๊ฐ์ฒด์ ๊ณตํต ๋ฉ์๋(์์ดํ 14)]
์ด๋ฒ ๊ธ์ ํตํด Comparable์ ์ด๋ป๊ฒ ๊ตฌํํ๋ฉด ์ข์์ง ์์๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ์ 'compareTo ๊ท์ฝ'์ ๋ํด์ ์์๋ณด๊ณ 'compareTo๋ฅผ ๊ตฌํํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ'์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. (๋ง์ฝ Comparable์ ๋ํ ๊ธฐ๋ณธ์ง์์ด ํ์ํ๋ค๋ฉด ์ด์ ๊ธ์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.) ๋ค์ด๊ฐ๊ธฐ์ ์์ Comparable ์ธํฐํ์ด์ค์ ์ ์ผ๋ฌด์ดํ ๋ฉ์๋์ธ compareTo์ ํน์ง์ ๋ํด์ ํ๋ฒ ์ดํด๋ณด์. ์ด๋ ์๋์ 2๊ฐ์ง๋ง ๋นผ๋ฉด Object.equals์ ๊ฐ๋ค. ๋จ์ ๋์น์ฑ ๋น๊ต์ ๋ํด์ ์์๊น์ง ๋น๊ตํ ์ ์๋ค. Generic์ ์ง์ํ๋ค. 1. compareTo ๊ท์ฝ ๐ช sgn(ํํ์) ํ๊ธฐ๋ ์ํ์์ ๋งํ๋ ๋ถํธ ํจ์๋ฅผ ๋ปํ๋ฉฐ, ํํ์์ ๊ฐ์ด ์์, 0, ์์ ์ผ ๋ -1, 0, 1์ ๋ฐํํ๋๋ก ์ ์ํ..

clone ์ฌ์ ์๋ ์ฃผ์ํด์ ์งํํ๋ผ(2) - [3์ฅ. ๋ชจ๋ ๊ฐ์ฒด์ ๊ณตํต ๋ฉ์๋(์์ดํ 13)]
์ด์ ๊ธ์ ํตํด ๋ถ๋ณ ๊ฐ์ฒด์์ clone์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค. ์ด๋ฒ์๋ ๊ฐ๋ณ ๊ฐ์ฒด์์ clone์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ๋ 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์ดํด๋ณด์. 1. ๋ฐฐ์ด ๋ณต์ฌ๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ ๐จ๐ public class Stack implements Cloneable{ private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { this.elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[..

clone ์ฌ์ ์๋ ์ฃผ์ํด์ ์งํํ๋ผ(1) - [3์ฅ. ๋ชจ๋ ๊ฐ์ฒด์ ๊ณตํต ๋ฉ์๋(์์ดํ 13)]
์ด๋ฒ ๊ธ์์๋ clone์ ์ฌ์ ์ ํ ๋ ์ด๋ค ์ ์ ์ฃผ์ํด์ ์ฌ์ ์ ํด์ผ ํ๋์ง ์์๋ณด๊ณ ์ ํ๋ค. clone์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ๋ณด๋ค๋ ์ฃผ์์ ์ ์ด์ ์ด ๋ง์ถฐ์ ธ ์์ผ๋ฏ๋ก clone์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์๊ณ ์ถ๋ค๋ฉด ์ด์ ๊ธ์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค. clone์ ์ฌ์ ์ํ ๋ ํฌ๊ฒ 2๊ฐ์ง ์ํฉ์ผ๋ก ๊ตฌ๋ถํ ์ ์๋ค. ์ฒซ ๋ฒ์งธ๋ ๋ถ๋ณ ๊ฐ์ฒด์์์ clone์ด๊ณ ๋ ๋ฒ์งธ๋ ๊ฐ๋ณ ๊ฐ์ฒด์์์ clone์ด๋ค. ๋จผ์ ๋ถ๋ณ ๊ฐ์ฒด์ clone์ ์ฌ์ ์ํ ๋ ์ฃผ์์ ์ ์ดํด๋ณด๊ณ , ๋ค์ ๊ธ์ ํตํด ๊ฐ๋ณ ๊ฐ์ฒด์ clone์ ์ฌ์ ์ํ ๋ ์ฃผ์์ ์ ์ดํด๋ณด๋๋ก ํ์. 1. clone ๊ท์ฝ ๐ฉ๐พ clone์ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ํด๋์ค์ ์ฌ์ ์๋ฅผ ํ ๋ ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด(๊ท์ฝ)์ ๋ง์กฑํ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค. ์๋์ 3๊ฐ์ง ๊ท์ฝ์ ๊ธฐ์ตํ๊ณ ์ด๋ป๊ฒ..

clone()
1. ๊ฐ๋ ๐ทโ๏ธ clone() ๋ฉ์๋๋ ์์ ์ ๋ณต์ ํ์ฌ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ์ผ์ ํ๋ค. 2. ์ฌ์ฉ๋ฐฉ๋ฒ ๐ฉโ๏ธ clone()์ Object ํด๋์ค์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด ์๋ค. public class Object { protected native Object clone() throws CloneNotSupportedException; } ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ค์ 2๊ฐ์ง๋ฅผ ์ํํ์ฌ์ผ ํ๋ค. Cloneable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค. clone()์ ์ค๋ฒ๋ผ์ด๋ฉํ๋ฉด์ ์ ๊ทผ ์ ์ด์๋ฅผ protected์์ public์ผ๋ก ๋ณ๊ฒฝํ๋ค. public class User implements Cloneable { String name; int age; public User(String name, int age..

์์ ๋ณต์ฌ(Shallow Copy) vs ๊น์ ๋ณต์ฌ(Deep Copy)
์์ ๋ณต์ฌ(Shallow Copy)๋ ์ฃผ์๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ ๋งํ๋ค. (์คํ ์์ญ) ๊น์ ๋ณต์ฌ(Deep Copy)๋ ์ค์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ ๋งํ๋ค. (ํ ์์ญ) 1. ์์ ๋ณต์ฌ(Shallow Copy) ๐ ์์ ๋ณต์ฌ(Shallow Copy)๋ ์ฃผ์๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ด๋ค. ์ฐธ์กฐ๊ฐ์ ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค. ๊ทธ๋์ ๊ธฐ์กด์ ๊ฐ์ ๋ฐ๊พธ๋ฉด ๋ณต์ฌ๋ ๊ฐ๋ ๋ฐ๋๊ฒ ๋๋ ์ํฉ์ด ๋ฐ์ํ๋ค. public class User { String name; int age; public User(String name, int age) { super(); this.name = name; this.age = age; } } ---------- public class ShallowCop..