์๋ฐ ๊ฐ์ 4์ฃผ์ฐจ ์ ๋ค๋ฆญ ๋ถ๋ถ๊ณผ 5์ฃผ์ฐจ ์ฐ๋ ๋ ๋ถ๋ถ์ ๋ค ๋ค์๋ฐ!!! ์ฌ์ค ์ด ๋ ๊ฐ๋
์ ์๊ธด์๊ณ ๋ญ๊ฐ ๋๊ฐ ๊ฐ์ ์ค๋๋ฐ..... ์ ํํ๊ณ ์์ธํ๊ฒ ์ฌ์ฉํ๊ธฐ์๋ ์ข ์ด๋ ต๋ค.... ์ด๋ฒ ๊ฐ์๋ก ์ ๋ถ ์๋ฒฝํ ์์๋ค๊ณ ํ๋ฉด ๊ทธ๊ฑด ๋๋ฌด ๊ฑฐ์ง๋ง... ใ
๐ญ ๊ทธ๋๋ ๊ธฐ์กด๋ณด๋ค ์ด๋์ ๋ ๋ฉ์๋๋ ๊ฐ๋
์ ์ก์ ๋๋ !! ์ถํ์ ์ข ๋ ๊ณต๋ถํ๊ณ , ์ค์ตํด์ ํ์คํ ์ก์! https://hyeyun.tistory.com/entry/JAVA-4%EC%A3%BC%EC%B0%A8-%EC%A0%9C%EB%84%A4%EB%A6%AD JAVA 4์ฃผ์ฐจ: ์ ๋ค๋ฆญ Generic public class Generic { ... } Generic stringGeneric = new Generic(); Generic ์ ํด๋์ค์ฒ๋ผ, ์ ๋ค..
์ ์ฒด ๊ธ
๐ท ์ฐ๋ ๋(์ผ๊พผ) ํ๋ก์ธ์ค์ ์ฐ๋ ๋ ๐ ํ๋ก์ธ์ค vs ์ฐ๋ ๋ ํ๋ก์ธ์ค : ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ๋ ์์
์ ๋จ์ ์ฐ๋ ๋ : ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ์ ๋จ์ ํ๋ก์ธ์ค ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธ OS ์์์ ์คํ๋๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ OS๊ฐ ๋ง๋ค์ด์ค ํ๋ก์ธ์ค์์ ์คํ๋จํ๋ก์ธ์ค ๊ตฌ์กฐ OS๊ฐ ํ๋ก๊ทธ๋จ ์คํ์ ์ํ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํด์ค๋ ํ๋ก์ธ์ค ์์ ํ๋ก๊ทธ๋จ code์ data ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ(stack, heap)์ ํจ๊ป ํ ๋น code ๋ java main ๋ฉ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์๋ฏธ data๋ ํ๋ก๊ทธ๋จ์ด ์คํ ์ค ์ ์ฅํ ์ ์๋ ์ ์ฅ ๊ณต๊ฐ์ ์๋ฏธ ์ ์ญ ๋ณ์, ์ ์ ๋ณ์(static), ๋ฐฐ์ด ๋ฑ ์ด๊ธฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ memory stack : ์ง์ญ ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๋ณ์๋ฅผ ์ ์ฅ..
Generic public class Generic { ... } Generic stringGeneric = new Generic(); Generic ์ ํด๋์ค์ฒ๋ผ, ์ ๋ค๋ฆญ์ ์ฌ์ฉํ ํด๋์ค๋ฅผ ์ ๋ค๋ฆญ ํด๋์ค๋ผ๊ณ ํจ ์ ๋ค๋ฆญ์์ ์ฌ์ด์ ๋ค์ด๊ฐ๋ ๋ณ์๋ช
T๋ ํ์
๋ณ์๋ผ๊ณ ํจ Generic ํด๋์ค๋ฅผ ์์ ํ์
์ด๋ผ๊ณ ํจ ์ ํ ๊ฐ์ฒด์ static ๋ฉค๋ฒ์ ์ฌ์ฉํ ์ ์์ ํ์
๋ณ์๋ ์ธ์คํด์ค ๋ณ์๋ก ๊ฐ์ฃผ๋๊ณ , ๋ชจ๋ ๊ฐ์ฒด์ ๋์ผํ๊ฒ ๋์ํด์ผํ๋ static ํ๋ ํน์ฑ์ ์ฌ์ฉํ ์ ์์ ์ ๋ค๋ฆญ ๋ฐฐ์ด์ ์์ฑํ ์ ์์ ๋ฌธ๋ฒ ๋ค์์ ํ์
๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์์ public class Generics { public E multiTypeMethod(T t, U u) { ... } } Generic instance ..
์์ธ์ฒ๋ฆฌ ์ค๋ฅ(Error) vs ์์ธ(Exception) ๊ฐ์ฅ ์ค์ํ ๊ธฐ์ค์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ณต ๊ฐ๋ฅ ์ฌ๋ถ ์ค๋ฅ(Error) ์ผ๋ฐ์ ์ผ๋ก ํ๋ณต์ด ๋ถ๊ฐ๋ฅํ ๋ฌธ์ ์์คํ
๋ ๋ฒจ์์, ๋๋ ์ฃผ๋ก ํ๊ฒฝ์ ์ธ ์ด์ ๋ก ๋ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด๋ ํ ์๋ฌ๋ก ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋์๋์ง๋ฅผ ํ์ธํ๊ณ ๋์ ์์ธ(Exception) ์ผ๋ฐ์ ์ผ๋ก ํ๋ณต์ด ๊ฐ๋ฅํ ๋ฌธ์ ํ๋ณต์ด ๊ฐ๋ฅํ๋ค๋ ์ ์ ๋ ๊ทธ ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ์ ์ธ์งํ๊ณ , ๋์ํ์ ๊ฒ ์ฝ๋๋ ๋ฒจ์์ ํ ์ ์๋ ๋ฌธ์ ์ํฉ์ ๋ํ ๋์์ ์์ ์ฒ๋ฆฌ์ ์ํจ ์์ธ์ ์ข
๋ฅ ์ฝ๋์คํ ๊ด์ ์์ ์์ธ์ ์ข
๋ฅ ์ปดํ์ผ ์๋ฌ(์์ธ) .java -> .class ๋ก ์ปดํ์ผํ ๋ ๋ฐ์ํ๋ ์๋ฌ ๋๋ถ๋ถ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ท์น์ ์งํค์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฐ์ ์) ์์ง ์์ ํด๋์ค๋ฅผ ํธ์ถ, ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅ..
๋ด๋ฐฐ์บ ๊ฐ์ธ ๊ณผ์ ์งํ ํ์ ์๊ตฌ์ฌํญ ๋ฉ๋ด ํด๋์ค : ์ด๋ฆ, ์ค๋ช
ํ๋ ์ํ ํด๋์ค : ์ด๋ฆ, ๊ฐ๊ฒฉ, ์ค๋ช
ํ๋ / ๋ฉ๋ด ํด๋์ค๋ฅผ ์์๋ฐ๊ธฐ ์ฃผ๋ฌธ ํด๋์ค : ์ํ ๊ฐ์ฒด ๋ด๊ธฐ ๋ฉ์ธ ๋ฉ๋ดํ ํ๋ฉด ์ํ ๋ฉ๋ดํ ํ๋ฉด ๊ตฌ๋งค ํ๋ฉด ์ฃผ๋ฌธ ํ๋ฉด ์ฃผ๋ฌธ ์๋ฃ ํ๋ฉด ์ฃผ๋ฌธ ์ทจ์ ํ๋ฉด ์ ํ ์๊ตฌ์ฌํญ ์ฃผ๋ฌธ ๊ฐ์ ๊ธฐ๋ฅ ์ํ ์ต์
๊ธฐ๋ฅ ์ด ํ๋งค๊ธ์ก/์ํ ์กฐํ ๊ธฐ๋ฅ ํ์์ ์ ํ ๋ชจ๋ ๊ตฌํํ๋ค.๐ ๊ทธ๋ฐ๋ฐ ์ฝ๋๊ฐ ์ข ๋ง๋... ์ง์ ๋ถํ๊ฑฐ ๊ฐ์์ ์์ํ๊ธด ํ๋ค....๐ญ ํนํ ์ค๋ช
์ด ๋ญ๊ฐ ๋ด๊ฐ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ๋ค์ด ๋ช
ํํ ๋์์์ง ์์ ๊ทธ๋ฌ๋น... ๊ทธ๋๋ ๊ฝค๋ ๊ด์ฐฎ๊ฒ ๋ง๋ ๊ฑฐ๊ฐ์๋ฐ;; ์ ์ถํ์ผ๋ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์กฐ๊ธ ๋ ์ข๊ฒ ๊ณ ์ณ๋ด์ผ๊ฒ ๋น ํนํ ์ถ๋ ฅ์์ | ๋ถ๋ถ์ด ์ผ์๋ก ์ญ์ฐ์ฑ ์ด์๊ฒ ๋ง์ถฐ์ง๊ฒ ํ๊ณ ์ถ์ด์, ์ฌํ ๋ณ๋ก ์ ๊ฒฝ๋ ์์ฐ๋ printf์ %-..
ํด๋์ค ๊ฐ์ฒด ๊ฐ์ฒด๋ ์ธ์์ ์กด์ฌํ๋ ๋ฌผ์ฒด๋ฅผ ๋ปํ๋ฉฐ ์๋ณ์ด ๊ฐ๋ฅํ ๊ฒ์ ์๋ฏธ ๊ฐ์ฒด๋ ์์ฑ๊ณผ ํ์๋ก ๊ตฌ์ฑ Java์์๋ ์ด๋ฌํ ์์ฑ๊ณผ ํ์๋ฅผ ํ๋์ ๋ฉ์๋๋ก ์ ์ํ์ฌ ๊ตฌํ ๊ฐ๋ฅ ํ์ค ์ธ๊ณ ๊ฐ์ฒด -> ์ํํธ์จ์ด์ ๊ฐ์ฒด : ๊ฐ์ฒด ๋ชจ๋ธ๋ง ๊ฐ์ฒด ๊ฐ์ ํ๋ ฅ ํ์๋ฅผ ์ ์ํ๋ Java์ ๋ฉ์๋๋ฅผ ํตํด ์ด๋ฃจ์ด์ง ๊ฐ์ฒด๋ค์ ๋ฉ์๋๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ํ๋ผ๋ฏธํฐ ํน์ ๋งค๊ฐ๊ฐ์ด๋ผ๊ณ ํํ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง ์บก์ํ ์์ฑ(ํ๋)์ ํ์(๋ฉ์๋)๋ฅผ ํ๋๋ก ๋ฌถ์ด ๊ฐ์ฒด๋ก ๋ง๋ ํ ์ค์ ๋ด๋ถ ๊ตฌํ ๋ด์ฉ์ ์ธ๋ถ์์ ์ ์ ์๊ฒ ๊ฐ์ถ๋ ๊ฒ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋
ธ์ถ์์ผ ์ค ํ๋ ํน์ ๋ฉ์๋๋ฅผ ํตํด ์ ๊ทผ ๊ฐ๋ฅ ์ธ๋ถ ๊ฐ์ฒด์์ ๊ฐ์ฒด๋ฅผ ๋ณํ๊ฒ ๋ง๋ค์ง ์๊ฒ ํ๊ธฐ ์ํจ ๋
ธ์ถ์ํฌ ์ง ๊ฐ์ถ ์ง ๊ฒฐ..
์ฐ์ฐ์ ๋นํธ ์ฐ์ฐ 1 Byte = 8 Bits Bit๋ 0, 1 ๋ ์ค์ ํ๋์ ๊ฐ๋ง์ ์ ์ฅํ๋ ์ปดํจํฐ๊ฐ ์ ์ฅ(ํํ)๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ๋จ์ ์ฐ์ฐ ์ค Bit ์ฐ์ฐ์ด ๊ฐ์ฅ ๋น ๋ฆ 0, 1์ 2์ง์ ๊ฐ์ด๊ธฐ ๋๋ฌธ์, ์๋ฆฌ์๋ฅผ ์ผ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ํ์๋งํผ 2์ ๋ฐฐ์๋ก ๊ณฑ์
์ด ์ฐ์ฐ๋๋ ๊ฒ๊ณผ ๋์ผ ์๋ฆฌ์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฎ๊ธฐ๋ ํ์๋งํผ 2์ ๋ฐฐ์๋ก ๋๋์
์ด ์ฐ์ฐ๋๋ ๊ฒ๊ณผ ๋์ผ ์ปฌ๋ ์
๐งฌ Java ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ฐฐ์ด์ ๋ ๊ณ ๋ํ์์ผ์ ์ปฌ๋ ์
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฐธ์กฐํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๊ณ ์๋ค. ์ปฌ๋ ์
์ ์ฐธ์กฐํ ๋ณ์๋ง ์ ์ฅํจ์ผ๋ก์จ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ง์ด ์ ๊ณตํจ
JVM Java Virtual Machine ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๊ธฐ์์ Java ํ๋ก๊ทธ๋จ์ ์คํ์ํฌ ์ ์๋ ๊ฐ์์ ๊ธฐ๊ธฐ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ์๋ฏธ ๐ก Java ์ปดํ์ผ๋ฌ๋? ์์ฑํ Java ์ฝ๋(.java ํ์ผ)์ ์ด์์ฒด์ ๊ฐ ์ฝ์ ์ ์๋ ๋ฐ์ดํธ ์ฝ๋(.class ํ์ผ)๋ก ๋ณํํ๋ ๋ณํ๊ธฐ ์ธํฐํ๋ฆฌํฐ ๐ Java .class ์ฝ๋ ํด์๊ธฐ ์ด์์ฒด์ ๊ฐ ์ฝ์ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ธฐ(๊ธฐ๊ณ)๊ฐ ์คํํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ JIT ์ปดํ์ผ๋ฌ ๐ ๋น ๋ฅธ Java .class ์ฝ๋ ํด์๊ธฐ ์ธํฐํ๋ฆฌํฐ์ ํจ์จ์ ๋์ฌ์ฃผ๋ ์ํฌํฐ ํด์๊ธฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๐๏ธ Java ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์ญ ์ด์์ฒด์ ๋ก๋ถํฐ JVM์ด ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ํด๋์ค ๋ก๋ ๐ Java .class ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ด๋ ์ด๋ฐ๊ธฐ JVM์ผ๋ก class(๋ฐ์ดํธ ์ฝ๋)๋ฅผ..