๐ Java & Kotlin & Spring/- Java & kotlin14 ๋คํ์ฑ์ ์ํ instanceof ๋ฅผ Generic ์ผ๋ก ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ ๋ชฉ์ฐจ ์๋ก instanceof ๋? ์ฝ๋์์ instanceof ๋ฅผ ๋๊ปด๋ณด์ Generic ์ ์ด์ฉํ์ฌ ์ฐ์ํ๊ฒ ์ ๊ฑฐํ๊ธฐ ๊ทธ๋ผ์๋ ์กด์ฌํ๋ ๋ฌธ์ ์ ํ์ง๋ง? ์๋ก ์๋ฐ์์ ๋คํ์ฑ์ ์ด์ฉํ ๊ฐ์ฒด์งํฅ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค๋ณด๋ฉด ์ข ์ข ํน์ ๊ฐ์ฒด๊ฐ ์ง์ ๋ ์ ํ์ ์ธ์คํด์ค์ธ์ง ํ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทธ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ ์ฌ๋ฌ๊ฐ์ง ์ ํ์ง๊ฐ ์์ง๋ง, ์ค๋์ instanceof ์ ๋ํด ์ง์คํ๊ณ ์ด์ผ๊ธฐํด๋ณด๋ ค ํ๋ค. ๋คํ์ฑ์ ์ด์ฉํ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ํน์ ํ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ๋ช๊ฐ์ง ์์ ์ ํด์ผ ํ๋๋ฐ, ๊ทธ์ค ๋ํ์ ์ธ ๊ฒ์ด ๋ฐ๋ก instanceof ์ฐ์ฐ์์ด๋ค. instanceof ๋? ์์ ๋งํ๋ฏ Java ์์๋ ์ด๋ค ๊ฐ์ฒด์ ํน์ type ์ ๋ํด์ ๋์ผํ type ์ธ์ง ํ์ธํ ์ ์๋ ์ฐ์ฐ์ instanceof ์ฐ์ฐ์.. 2022. 4. 3. [์กฐ๊ธ ๋ ๊น์ Java] JVM์ Runtime Data Area, Execution Engine, Garbage Collection ์ ๋ํด์ ์๋ฐ๋ฅผ ๊ณต๋ถํด๋ณด์๋ค๋ฉด ์ตํ ๋ค์์ JVM, Java Virtual Machine ์ ๋ํด์ ์ด์ผ๊ธฐํด๋ณด๋ ค ํ๋ค. ๋ง์ฐํ๊ฒ JVM ์ด ๋์ํ๊ณ JVM์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ด๋ฉฐ Garbage Collection ์ผ๋ก ์ฅ์ ์ ์ป์ ์ ์๋ค๊ณ ์๊ฐํ๋ ์ฌ๋๋ค์ด ๋ง์ ๊ฒ์ด๋ค. ์ค๋์ JRE์ ๊ตฌ์ฑ์์์ธ JVM์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋๊ณ Garbage Collection ์ด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ๋์ง ์์๋ณผ ๊ฒ์ด๋ค. JVM ์ด๋? ์ง๋ 2๋ฒ์ ์๊ฐ์ ๊ฑฐ์ณ ์ฐ๋ฆฌ๋ Java Bytecode์ Java ClassLoader ์ ๋ํด์ ์์๋ณด์๋ค. ์ง๋ ์๊ฐ์๋ ์ด๋ป๊ฒ ์๋ฐ ํ์ผ์ด ์ปดํ์ผ๋์ด ํด๋์ค ํ์ผ๋ก ๋ณํ์ด ๋๊ณ , ์ด๋ป๊ฒ ํด๋์ค๋ก๋์ ์ํด์ ๋์ ์ ์ฌ๋๋ฉฐ verification ์ ์ํํ๋์ง ์์๋ณด์๋ค. ์ค๋์ ๊ทธ ์ดํ.. 2021. 12. 5. [์กฐ๊ธ ๋ ๊น์ Java] JRE์ Classloader ์ ๋ํด ์์๋ณด์ ์ค๋์ JRE์ ํต์ฌ ๊ตฌ์ฑ์์์ธ Classloader์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค. ์ง๋ ์๊ฐ ์ฐ๋ฆฌ๋ Java Bytecode ์ ๋ํด์ ์์๋ณด์๋ค. [์กฐ๊ธ ๋ ๊น์ Java] Java Bytecode ๋ฅผ ์์๋ณด์ (์๋ฐ๋ฅผ ์ปดํ์ผํ๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?) ์ฐ๋ฆฌ๋ ๋ง์ ์๊ฐ Java๋ฅผ ์ด์ฉํด์ ๋ค์ํ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ๋ค์๋ ์๋ฆฌ๊ฐ ์๋ค. Java๋ JVM ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ซํผ์ ์ข ์์ ์ด์ง ์๊ณ ์ด์์ฑ์ด ๋ฐ์ด๋๋ค. ๊ทธ ์ด์ ์ ๋ํด์ ์๊ฐํด๋ณธ ๊ฒฝ wonit.tistory.com ์ฐ๋ฆฌ๊ฐ .java ํ์ผ์ ์ปดํ์ผํ๋ค๋ฉด .class ๋ผ๋ ๋ฐ์ดํธ ์ฝ๋๋ก ๋ณํ์ด๋๊ณ JVM์ด ํด๋น class ํ์ผ์ ๋์ ์ผ๋ก ์คํํ๋ ๊ณผ์ ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ด ๋ฐ๋ก ClassLoader ์ด๋ค. Java ClassLoader Java.. 2021. 12. 2. [์กฐ๊ธ ๋ ๊น์ Java] Java Bytecode ๋ฅผ ์์๋ณด์ (์๋ฐ๋ฅผ ์ปดํ์ผํ๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?) ์ฐ๋ฆฌ๋ ๋ง์ ์๊ฐ Java๋ฅผ ์ด์ฉํด์ ๋ค์ํ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ๋ค์๋ ์๋ฆฌ๊ฐ ์๋ค. Java๋ JVM ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ซํผ์ ์ข ์์ ์ด์ง ์๊ณ ์ด์์ฑ์ด ๋ฐ์ด๋๋ค. ๊ทธ ์ด์ ์ ๋ํด์ ์๊ฐํด๋ณธ ๊ฒฝํ์ด ์๋๊ฐ? ์ค๋์ ์์ JVM๊ณผ ์ด์์ฑ์ ์ดํดํ๊ธฐ ์ํด ๊ผญ ์์์ผ ํ๋ Java Bytecode ์ ๋ํด์ ์์๋ณด๋ ค ํ๋ค. Java Bytecode, ์๋ฐ ๋ฐ์ดํธ์ฝ๋ ์ฐ๋ฆฌ๋ Java ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์ JDK๋ฅผ ์ค์นํ๊ณ Java ์ํํธ์จ์ด๋ฅผ ์คํ์ํค๊ธฐ ์ํด์ JRE ๋ฅผ ์ค์นํ๋ค. ๋ํ ๊ฐ๋ฐ์ ํ๋ฉด ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํด์ Compile ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋๋ฐ, ์ด ์ปดํ์ผ์ ๋ฐ๋ก JDK๋ JRE ์ ํจ๊ป ํฌํจ๋๋ javac.exe ์คํํ์ผ์ด ์ํํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ .java ํ์ผ์ .. 2021. 11. 25. ์ด์ 1 2 3 4 ๋ค์