๐ Interview ๐ทBookmark ์๋ฐ ๊ธฐ๋ณธ ๊ฐ์ฒด์งํฅ์ ํน์ง๊ณผ ์์น JVM ์๋ฃํ๊ณผ ํ๋ณํ ์ ํ์ abstract, interface, generics ์๋ฐ ๋ฒ์ ๋ณ ํน์ง Garbage Collection ๋๋ค์ ์คํธ๋ฆผ ์ด๋ ธํ ์ด์ ๋ฆฌํ๋ ์ ์ง๋ ฌํ ์ญ์ง๋ ฌํ String vs StringBuffer vs StringBuilder ์๋ฌ์ ์์ธ ์๋ฐ ๊ธฐ๋ณธ ๐จ ์๋ฐ์ธ์ด์ ์ฅ๋จ์ ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ ์๋ฐ ์ธ์ด์ ํน์ง์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ์๋ฐ์ ๋ค๋ฅธ ์ธ์ด์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ์๋ฐ์์ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ๋ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์ค๋ช ํ์ธ์. ๐จ ์๋ฐ์์ ๊ฐ์ฒด์์ฑ์ ์์ฑ์์ ์ญํ ์ ๋ฌด์์ธ์ง ์ค๋ช ํ์ธ์. ๐จ ํด๋์ค์ ๊ฐ์ฒด์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ ํจ์ ํธ์ถ ๋ฐฉ์ ๋๊ฐ์ง์ ๋ํด ์ค๋ช ํ๊ณ ์๋ฐ์์ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๊ฐ์ฒด์งํฅ์ ํน์ง๊ณผ ์์น ๐จ ์ ์ฐจ์งํฅ์ธ์ด์ ๊ฐ์ฒด์งํฅ์ธ์ด์ ์ฐจ์ด์ ์ ๋ฌด์์ธ์ง ์ค๋ช ํ์ธ์. ๐จ ๊ฐ์ฒด์งํฅ์ ํน์ง์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ๊ฐ์ฒด์งํฅ์ ์์น์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ๋ค์ค ์์๊ณผ ๋จ์ผ ์์์ ๋น๊ต ์ค๋ช ํด์ฃผ์ธ์ (๋ฌธ์ ์ , ํ๊ณ ๋ฑ) ๐จ ์ค๋ฐ๋ผ์ด๋ฉ๊ณผ ์ค๋ฒ๋ก๋ฉ์ ๋ํด ์ค๋ช ํ์ธ์. JVM ๐จ ์๋ฐ์ ์ปดํ์ผ ๊ณผ์ ์ ๋ค๋ฅธ ์ธ์ด์ ๋น๊ตํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ JVM์ด ๋ฌด์์ธ์ง์ ์ญํ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ํด๋์ค ๋ฉค๋ฒ ๋ณ์ ์ด๊ธฐํ ์์ ์๋ฃํ๊ณผ ํ๋ณํ ๐จ Wrapper Class๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ Promotion์ casting์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ์ ํ์ ๐จ ์ ๊ทผ ์ ํ์์ ๋ฒ์๊ฐ ์์ ์์ผ๋ก ๋์ดํ์ธ์. ๐จ static, final, static final์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ์๋ฐ์ ๋ฉ์ธ ๋ฉ์๋๊ฐ static์ธ ์ด์ abstract, interface, generics ๐จ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํ์ธ์. ์๋ฐ ๋ฒ์ ๋ณ ํน์ง ๐จ Java ๋ฒ์ ๋ณ ํน์ง์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์๋ฐ๋ฒ์ ๊ณผ ์ ํด๋น๋ฒ์ ์ ์ฌ์ฉํ๋์ง ์ค๋ช ํ์ธ์. Garbage Collection ๐จ ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ๋ํด ํ๋์ ์์๋ฅผ ๋ค์ด์ฃผ์ธ์. ๐จ C, C++๊ณผ ๋ฌ๋ฆฌ Java์์ ๊ฐ์ฒด๋ฅผ ํด์ ํ์ง ์์๋ ๋๋ ์ด์ ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ ์ผ๋ฐ์ ์ธ Garbage Collection์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ Generational Gabage Collection ๊ณผ์ ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ G1 GC์ ๋ํด ์ค๋ช ํ์ธ์. ๋๋ค์ ์คํธ๋ฆผ ๐จ Lambda ํํ์๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ Collection๊ณผ Stream์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํ์ธ์. ์ด๋ ธํ ์ด์ ๐จ Annotation์ ์ญํ ๊ณผ ๋ํ์ ์ธ Annotation์ ๋ช ๊ฐ์ง ์์๋ฅผ ๋ค์ด์ฃผ์ธ์. ๋ฆฌํ๋ ์ ๐จ ์๋ฐ ๋ฆฌํ๋ ์ ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํ๊ณ ๊ทธ๋ฆฌ๊ณ ๋ฆฌํ๋ ์ ์ด ์ฌ์ฉ๋๋ ์์๋ฅผ ํ๊ฐ์ง ๋ค์ด์ฃผ์ธ์. ์ง๋ ฌํ ์ญ์ง๋ ฌํ ๐จ ์๋ฐ์์ ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ Spring์์ JSON ์ง๋ ฌํ ๋ฐ ์ญ์ง๋ ฌํ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. String vs StringBuffer vs StringBuilder ๐จ String์ด ๋ถ๋ณ์ธ ์ด์ ๋? ๐จ String vs StringBuffer vs StringBuilder์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํ์ธ์. ์๋ฌ์ ์์ธ ๐จ Optional์ ๋ํด ์๋๋๋ก ์ค๋ช ํ์ธ์. ๐จ ์๋ฌ์ ์์ธ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์. ๐จ Java์์ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ์ธ์. ๐จ Checked Exception๊ณผ UncheckedException์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.