Constructor, Builder Pattern, Static Factory MethodJava์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ธ๊ฐ์ง ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.์์ฑ์(Constructor)๋น๋ ํจํด(Builder Pattern)์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋(Static Factory Method)์์ฑ์(Constructor): ๊ธฐ๋ณธ์ ์ธ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ1. @NoArgsConstructor + @Setter๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํตํด ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ค, Setter๋ฅผ ์ฌ์ฉํด ํ์ํ ํ๋๊ฐ์ ์ค์ ํ๋ค.Human emptyHuman = new Human();emptyHuman.setName("CheonSang")emptyHuman.setAge(12);class Human { private String name; pri..
๐ปDEV-STUDY/Java
๋ก๋ ๋ฉ๋ชจ๋ฆฌ ์์ง JVMJVM(Java Virtual Machine)์ด๋, ์๋ฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๊ฐ์ ํ๊ฒฝ์ด๋ค. ์๋ฐ ์ฝ๋๊ฐ ์์ฑ๋๋ฉด, ์ด๋ฅผ ๋ฐ๋ก ๊ธฐ๊ณ์ด๋ก ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ JVM์ด ์ค๊ฐ์์ ๋ฐ์ดํธ์ฝ๋(.class ํ์ผ)์ ํด์ํ๊ณ , ์ด์์ฒด์ ์ ๋ง๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์คํํ๋ค.JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ํ๋ซํผ ๋
๋ฆฝ์ฑ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํต์ฌ ์์์ด๋ค. ์ฆ JVM๋ง ์์ผ๋ฉด ์ด๋ค ์ด์์ฒด์ ์์๋ ์คํ๋ ์ ์๋ค. "Write Once, Run Anywhere"๋ JVM์ ํตํด ์คํ๋๋ค. JVM (Java Virtual Machine) ๊ตฌ์ฑJVM์ ์ธ ๊ฐ์ง ์์๋ง ๊ธฐ์ต/ํ์ตํ๋ฉด ๋๋ค. 1. Class Loader(ํด๋์ค ๋ก๋, ๋ก๋): ์ปดํ์ผ๋ ๋ฐ์ดํธ์ฝ๋(.class)๋ฅผ JVM์ ๋ก๋ํ๋ค.2. Runtime..
Try Throw CatchJava์์ Exception(์์ธ)๋ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฉ์ปค๋์ฆ์ด๋ค.๊ธฐ๋ณธ์ ์ผ๋ก Try → Throw → Catch ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ด๋ฅผ ํตํด ํ๋ก๊ทธ๋จ์ด ์์ธ ์ํฉ์ ์ง๋ฉดํ์ ๋ ํ๋ก๊ทธ๋จ์ด ๋ฉ์ถ์ง ์๊ณ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ค. ์ปดํ์ผ ์๋ฌ์ ๋ฐํ์ ์๋ฌ (Checked / Unchecked Exception)Java์์ ์๋ฌ๋ฅผ ์๋ฐ ํ๋ก๊ทธ๋จ ์
์ฅ์์์ ์๋ฌ ๋ฐ์ ๊ทผ์(Source)์ ๋ฐ๋ผ 2๊ฐ์ง๋ก ๊ตฌ๋ถํด๋์๋ค. EChecked Exception (์ปดํ์ผ์๋ฌ): ํ๋ก๊ทธ๋จ ์ธ๋ถ์์ ๋ฐ์ํ๋ ์์ ๊ฐ๋ฅํ ์ค๋ฅ๋ก, ๋ฐ๋์ ์ฒ๋ฆฌํด์ผํ๋ค. ์์ธ ์ฒ๋ฆฌ๊ฐ ์์ผ๋ฉด ์ปดํ์ผ ์์ฒด๊ฐ ๋์ง ์๋๋ค.Unchecked Exception (๋ฐํ์์..
Write Once, Run AnywhereJava ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ์๋ฆฌJava ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์คํ๋๋์ง ์ดํดํ๋ ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ๊ธฐ๊ณ์ด๋ก ๋ณํ๋์ด ํ๋ก์ธ์ค๋ก ์คํ๋๋ ๊ณผ์ ์ ์ดํด๋ด์ผ ํ๋ค.Java ์ฝ๋ ์์ฑ๊ณผ ์ปดํ์ผJava ์ฝ๋(.java): ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์์ค ์ฝ๋๋ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํํ์ด๋ค.์ปดํ์ผ(Compile): ์๋ฐ ์ปดํ์ผ๋ฌ(Javac)๋ฅผ ํตํด ์ด ์์ค ์ฝ๋๋ฅผ ๋ฐ์ดํธ์ฝ๋ (.class)ํ์ผ๋ก ๋ณํํ๋ค.๋ฐ์ดํธ์ฝ๋๋ ์ด์์ฒด์ ๋ ํ๋์จ์ด์ ์์กดํ์ง ์๊ณ , JVM์์ ์คํ๋ ์ ์๋๋ก ์ค๊ณ๋ ์ค๊ฐ ์ฝ๋์ด๋ค.JVM(Java Virtual Machine)JVM์ ์ญํ : ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฐ์ ๋จธ์ ์ผ๋ก, ์ด์์ฒด์ ์ ๋ง๋ ๊ธฐ๊ณ์ด๋ก ๋ฐ์ดํธ์ฝ๋๋ฅผ ๋ณํํ๋ค. JVM์ Java ํ๋ก๊ทธ..