๐ฐ ์ธ์ด/Java (8) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์๋ฐ์์ ์ ์ฉํ ํด๋์ค๋ค ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ java.util.Objects ํด๋์ค java.util.Random ํด๋์ค ์ ๊ท์(Regular Expression) - java.util.regex ํด๋์ค java.util.Scanner ํด๋์ค java.util.StringTokenizer ํด๋์ค java.math.BigInteger ํด๋์ค 1. java.util.Objects ํด๋์ค Objectํด๋์ค์ ๋ณด์กฐ ํด๋์ค ๊ฐ์ฒด ๋น๊ต, hashcode์์ฑ, null์ฌ๋ถ, ๊ฐ์ฒด ๋ฌธ์์ด ๋ฆฌํด ๋ฑ์ ์ฐ์ฐ์ ์ํํ๋ ์ ์ ๋ฉ์๋๋ค๋ก ๊ตฌ์ฑ๋จ ๋ฉ์๋ ๋ฆฌํด ํ์ ์ค๋ช compare(T a, T b, Comparator c) int ๋ ๊ฐ์ฒด a์ b๋ฅผ Comparator๋ฅผ ์ฌ์ฉํด์ ๋น๊ต deepEquals(Object a, Object.. java.lang ํจํค์ง ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ java.langํจํค์ง๋? Object ํด๋์ค String ํด๋์ค StringBufferํด๋์ค์ StringBuilderํด๋์ค Math ํด๋์ค Wrapper ํด๋์ค java.langํจํค์ง๋? JAVA์ lang ํจํค์ง๋ JAVA ํ๋ก๊ทธ๋๋ฐ์ ํ์ํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํด๋์ค๋ค์ด ๋ชจ์ฌ์๋ ํจํค์ง์ด๋ค. import๊ตฌ๋ฌธ์ผ๋ก ํธ์ถํด์ผ ์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ํจํค์ง๋ค๊ณผ๋ ๋ฌ๋ฆฌ langํจํค์ง๋ import๊ตฌ๋ฌธ ์์ด๋ ์๋์ผ๋ก ํ๋ก๊ทธ๋จ์ ํฌํจ๋๋ค. langํจํค์ง์ ํฌํจ๋๋ ํด๋์ค๋ ๋ฐ๋ก ๋ช ์ํ์ง ์์๋ ์ต์์ ํด๋์ค๊ฐ ๋๋ค. - java.lang ํจํค์ง์ ํด๋์ค ๊ตฌ์กฐ๋[ langํจํค์ง์ ๋ชจ๋ ํด๋์ค ๋ณด๊ธฐ : JAVA API DOC : Java.lang ] 1. Objectํด๋์ค Objec.. ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(3) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ๋คํ์ฑ 2. ์ถ์ํด๋์ค 3. ์ธํฐํ์ด์ค 4. ๋ด๋ถํด๋์ค 1. ๋คํ์ฑ polymorphism 1-1) ๋คํ์ฑ์ด๋? ํ๋์ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ๊ฐ์ง ํ์ ์ ๊ฐ์ง ์ ์๋ ๊ฒ ์๋ฐ์์๋ ์ด๋ฌํ ๋คํ์ฑ์ ๋ถ๋ชจ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์์ ํด๋์ค ํ์ ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ํ์ฌ ๊ตฌํํ๋ค. ๋คํ์ฑ์ ์์, ์ถ์ํ์ ๋๋ถ์ด ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌ์ฑํ๋ ์ค์ํ ํน์ง ์ค ํ๋์ด๋ค. 1-2) ์ฐธ์กฐ ๋ณ์์ ๋คํ์ฑ ๋ถ๋ชจ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์์ ํด๋์ค ํ์ ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ์ด๋ ์ฐธ์กฐ ๋ณ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉค๋ฒ์ ๊ฐ์๊ฐ ์ค์ ์ธ์คํด์ค์ ๋ฉค๋ฒ ๊ฐ์๋ณด๋ค ๊ฐ๊ฑฐ๋ ์ ์ด์ผ ์ฐธ์กฐํ ์ ์๋ค. class Parent { ... } class Child extends .. ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(2) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์์ inheritance 2. ์ค๋ฒ๋ผ์ด๋ฉ overriding 3. package์ import 4. ์ ์ด์ modifier 1. ์์ inheritance ์ฅ์ : ์ฝ๋์ ์ถ๊ฐ, ๋ณ๊ฒฝ์ด ์ฝ๊ณ , ํ๋ก๊ทธ๋จ์ ์์ฐ์ฑ๊ณผ ์ ์ง๋ณด์์ ์ข๋ค. ํน์ง ์์ฑ์์ ์ด๊ธฐํ ๋ธ๋ญ์ ์์ํ ์ ์๊ณ , ๋ฉค๋ฒ(๋ณ์, ๋ฉ์๋)๋ง ์์ ๊ฐ๋ฅํ๋ค. ์ ๊ทผ ์ ์ด์๊ฐ private, default์ธ ๋ฉค๋ฒ์ ์์์ ๊ฐ๋ฅํ์ง๋ง, ์์ํด๋์ค๋ก๋ถํฐ์ ์ ๊ทผ์ ์ ํ๋๋ค. ์๋ฐ์ ๊ฒฝ์ฐ ๋จ์ผ ์์๋ง์ ํ์ฉํ๋ค. ์ฅ์ ๋จ์ ๋ค์ค ์์ ๋ณตํฉ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค๋ฅผ ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ ํด๋๊ฐ์ ๊ด๊ณ๊ฐ ๋งค์ฐ ๋ณต์ก ๋จ์ผ ์์(์๋ฐ) ํด๋์ค๊ฐ์ ๊ด๊ณ๊ฐ ๋ณด๋ค ๋ช ํ 2. overriding(=overwrite) 2-1) overr.. ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(1) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ํด๋์ค์ ๊ฐ์ฒด 2. ๋ณ์์ ๋ฉ์๋ 3. ์ค๋ฒ๋ก๋ฉ overloading 4. ์์ฑ์ constructor 5. ๋ณ์์ ์ด๊ธฐํ 1. ํด๋์ค์ ๊ฐ์ฒด public class Animal{ //ํด๋์ค Animal cat = new Animal(); //๊ฐ์ฒด } ํด๋์ค : ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ธฐ๋ฅ์ ํจ. ๊ฐ์ฒด : newํค์๋๋ฅผ ์ด์ฉํด Animalํด๋์ค์ ์ธ์คํด์ค์ธ cat, ์ฆ Animal์ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง. ์ธ์คํด์ค : ํน์ ๊ฐ์ฒด(cat)๊ฐ ์ด๋ค ํด๋์ค(Animal)์ ๊ฐ์ฒด์ธ์ง๋ฅผ ๊ด๊ณ์์ฃผ๋ก ์ค๋ช ํ ๋ ์ฌ์ฉ๋จ. 2. ๋ณ์์ ๋ฉ์๋ 2-1) ๋ณ์(์ ์ธ ์์น์ ๋ฐ๋ผ ๋ถ๋ฅ) ํด๋์ค ๋ณ์ (static ๋ณ์, ๊ณต์ ๋ณ์) ์ธ์คํด์ค ๋ณ์๊ฐ ์ธ์คํด์ค ๋ง๋ค ๋ ๋ฆฝ์ ์ธ ์ ์ฅ๊ณต๊ฐ์ ์ง๋๊ฑฐ์ ๋ฌ๋ฆฌ ํด.. switch/case๋ฌธ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. switch/case๋ฌธ ์คํ ์์ 2. switch๋ฌธ์ ์ ์ฝ์กฐ๊ฑด 3. switch๋ฌธ์ ์ค์ฒฉ 4. break์ continue 1. switch/case๋ฌธ ์คํ ์์ ์กฐ๊ฑด์ ๊ณ์ฐ ์กฐ๊ฑด์ ๊ฒฐ๊ณผ์ ์ผ์นํ๋ case๋ฌธ์ผ๋ก ์ด๋ break๋ switch๋ฌธ์ ๋์ ๋ง๋๋ฉด switch์ ์ฒด๋ฅผ ๋น ์ ธ๋๊ฐ๊ณ , break๋ฌธ์ ๋ง๋์ง ๋ชปํ๋ฉด ๋ค์ case๋ฌธ์ ์คํํ๋ค. switch(์กฐ๊ฑด์) { case ์ ๋ ฅ๊ฐ1: ... break; case ์ ๋ ฅ๊ฐ2: ... break; ... default: ... break; } 2. switch๋ฌธ์ ์ ์ฝ์กฐ๊ฑด Switch๋ฌธ์ ๊ฐ์ ์ ์ ๋๋ ๋ฌธ์(์ด)์ด์ด์ผ ํ๋ค. case๋ฌธ์ ๊ฐ๊ณผ switch๋ฌธ์ ๊ฐ ํ์ ํ์ ๊ฐ์์ผ ํ๋ค. case๋ฌธ์ ๊ฐ์ ์ค๋ณต๋ .. ์ฝ์ ์ ์ถ๋ ฅ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. InputStream ํด๋์ค ์ด์ฉ - ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฅ๋ฐฉ๋ฒ 1-1) ์คํธ๋ฆผ(Stream)์ด๋? 2. InputStreamReaderํด๋์ค ์ด์ฉ 2-1) BufferedReader 3. Scannerํด๋์ค ์ด์ฉ ์ฝ์ ์ ์ถ๋ ฅ์ ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ฌ๋ผ์ง๋ค. Java์ ๊ฒฝ์ฐ ๋ง์ ์ฌ๋๋ค์ด ์ดํด๋ฆฝ์ค๋ ๋์ค๋ฅผ ์ด์ฉํด ๋ง์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋๋ฐ ์ฌ์ฉ์๊ฐ ์ง์ ์ฝ์์ฐฝ์ ํตํด ์ ๋ ฅ์ ๋ฐ๊ฑฐ๋ ์ถ๋ ฅ์ ๋ฐ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. InputStream - byte InputStreamReader - character BufferedReader - String 1. InputStream ํด๋์ค ์ด์ฉ - ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฅ๋ฐฉ๋ฒ import java.io.InputStream; public cla.. ์๋ฐ์ ๋ํ์ฌ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์๋ฐ์ธ์ด์ ํน์ง 2. JVM 2-1) JVM๊ตฌ์ฑ 2-2) JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ 3. ์๋ฐํ๋ก๊ทธ๋จ์ ์คํ๊ณผ์ 1. ์๋ฐ์ธ์ด์ ํน์ง ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ์ด๊ณ , JVM์ ์ข ์์ ์ด๋ค. "write once, run anywhere" ๊ฐ์ฒด์งํฅ์ธ์ด์ด๋ค. Garbage collection์ด ์๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ค๋ค. ๋คํธ์ํฌ์ ๋ถ์ฐ์ฒ๋ฆฌ ์์ : ๋ค์ํ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(JavaAPI)๋ฅผ ํตํด ๋น๊ต์ ์งง์ ์๊ฐ์ ๋คํธ์ํฌ ๊ด๋ จ ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋ค. ๋ฉํฐ์ค๋ ๋ ์ง์ : ์ผ๋ฐ์ ์ธ ๋ฉํฐ์ค๋ ๋ ์ง์์ ์ด์์ฒด์ ์ ๋ฐ๋ผ ๊ตฌํ๋ฐฉ๋ฒ๊ณผ ์ฒ๋ฆฌ๋ฐฉ์์ด ์์ดํ์ง๋ง, ์๋ฐ์ ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์์คํ ์ ์๊ด์์ด ๊ตฌํ์ด ๊ฐ๋ฅํ๊ณ , JavaAPI๊ฐ ์ ๊ณต๋์ด ๊ตฌํ์ด ์ฝ๋ค. ๋ ์ฌ.. ์ด์ 1 ๋ค์