๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฐ ์–ธ์–ด/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๊ฐ€ ์ œ๊ณต๋˜์–ด ๊ตฌํ˜„์ด ์‰ฝ๋‹ค. ๋˜ ์—ฌ..