1. JAVA JAVA ์ธ์ด์ ์ฐฝ์์ : 1996๋ , ์บ๋๋ค, ์ ์์ค ์์ ๊ณ ์ฌ๋ง(James Arthur Gosling) JAVA ์ ์ฅ์ : Java์ธ์ด๋ JVM(์๋ฐ ๊ฐ์ ๋จธ์ )์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํด์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์ด๋ OS(์ด์์ฒด์ )์์๋ ์คํํ ์ ์๋ค.
์ฃผ์ Comment : ์์ค ์ฝ๋์ ๋ํ ์ค๋ช ์ ํ๊ธฐ ์ํ ๊ฒ๋ชฉ์ : ํ์ ์ ๋ณธ์ธ ๋ฟ ์๋๋ผ ๋ค๋ฅธ์ฌ๋์ด ์ฝ๋๋ฅผ ๋ดค์ ๋๋ ์ดํดํ๊ธฐ ์ฝ๋๋ก ์ค๋ช ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.์ฃผ์์ ์ข ๋ฅ ์ฝ๋ ๋ด์ฉ์ผ๋ก ์ธ์๋์ง ์๊ณ ์ฐ์ฐ ๊ฒฐ๊ณผ์ ๋ฐ์๋์ง ์์ ํ๋ก๊ทธ๋จ์ ์ํฅ์ ์ฃผ์ง ์์class
2์ ๋ณด์๋ฒ : ์์ ์ ์๋ฅผ 2์ง์๋ก ํํํ๊ธฐ ์ํด 2์ ๋ณด์๋ฅผ ์ทจํ๋ ๊ฒ\-5์ ์ปดํจํฐ ์์์ 2์ง์ ๊ฐ์ ๋ํ๋ด์์ค.์ค์๋ ์๋ฌด๋ฆฌ ์์ ๋ฒ์๋ด์๋ ๋ฌดํ๋์ ์๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ ํํ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ถ ๊ธฐ๋กํ ์ ์์ด ์ค์ฐจ ์์ด ํํ์ด ๋ถ๊ฐ๋ฅํ๋ค.๋ฐ๋ผ์, ์ง์ ํ ๋ฒ์
1. ์์คํค์ฝ๋ ์์คํค์ฝ๋ (ASCII) : American Standard Code for Information Interchange 1967๋ ์ ๋ง๋ค์ด์ง ์ํ๋ฒณ์ ๊ธฐ์ด๋ฅผ ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ ์์คํค ์ฝ๋๋ 0์์ 127๊น์ง์ ์ซ์๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์๋ฅผ ํ
์๋ฃํ์ ๊ธฐ๋ฐ์ผ๋ก ํํ์ด ๋๋ ์์์ ์๋ ๋ฌด์กฐ๊ฑด intํ์ผ๋ก ์ธ์ํ๊ธฐ๋ก ์ฝ์ํ๊ธฐ ๋๋ฌธ์ intํ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ๊ฐ๋ค์ ์๋ฃํ์ ๋ฐ๋์ ์ง์ ํด์ค์ผํจ๋ฌธ์ํ ๋ฆฌํฐ๋ด : char ch = 'A' ์ A์ ์ํ ๋ฆฌํฐ๋ด : int num = 5 + 7;์ 5์ 7์ค์ํ ๋ฆฌํฐ๋ด :
๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ์ฐ์ ํ ๋๋ ์ฐ์ ์์์ ๊ฒฐํฉ ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฐ์ฐ์ด ์ด๋ฃจ์ด์ง๋ค.๊ธฐ๋ณธ์์น์ฐ์ฐ์์ ์ฐ์ ์์์์int a = 6+ 7;(+)์ฐ์ฐ์ ์ฐ์ ์์๊ฐ (=)์ฐ์ฐ์ ์ฐ์ ์์๋ณด๋ค ๋๋ค.1\. (+)์ฐ์ฐ์ ๋จผ์ ํ๊ณ 2\. a์ ๋์ ํ๋ค.์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ ผ๋ฆฌ ์ฐ์ฐ
์ด์ค์ผ์ดํ ์ํ์ค๋ ํน์ ๋ฌธ์๋ก, ๋ฐฑ ์ฌ๋ฌ์() ๋ค์ ๋ฌธ์๊ฐ ์ค๋ฉฐ ํน์ํ ๊ธฐ๋ฅ์ ํ๋ค. (ํ๋ฉด์์ ์ด๋ ํ ์ํฉ ๋๋ ์ํ๋ฅผ ํํํ๊ธฐ ์ํด ์ฝ์๋ ๋ฌธ์)์ด์ค์ผ์ดํ ์ํ์ค์ ์ข ๋ฅ์์ ์ถ๋ ฅ๊ฒฐ๊ณผ: ์์์ ์ ์ฆ๊ฐ ์ฐ์ฐ์ (prefix): ++n / --n\++,--๊ฐ num์์
switch๋ฌธ: ์กฐ๊ฑด์ด ๋ง๋ case๋ฅผ ์ฐพ์๊ฐ์ break๊น์ง ์คํ ํ ์กฐ๊ฑด๋ฌธ์ ๋น ์ ธ๋๊ฐ๋ค. ๋ง์ผ ์กฐ๊ฑด์ ๋ง๋ ๊ฒ ์์ ๊ฒฝ์ฐ default๋ฅผ ์คํํ๋ค.switch๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ถ๋ ฅ๊ฒฐ๊ณผ12,1,2,3 ๊ฒจ์ธ์ ๋๋ค.4,5,6 ๋ด์ ๋๋ค.7,8,9 ์ฌ๋ฆ์ ๋๋ค.10,11 ๊ฐ์์ ๋
while๋ฌธ: ๋จผ์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๊ณ ๊ฒฐ๊ณผ๊ฐ true์ด๋ฉด ์ค๊ดํธ ์์ญ ์คํdo~while๋ฌธ: ๋จผ์ ! ์ค๊ดํธ ์์ญ ์คํ๊ทธ๋ฆฌ๊ณ ์กฐ๊ฑด ๊ฒ์ฌ ํ ๊ฒฐ๊ณผ๊ฐ true์ด๋ฉด ๋ฐ๋ณต ๊ฒฐ์ while๋ฌธ๊ณผ do~while๋ฌธ์ ์ฐจ์ดwhile๋ฌธ์ ์กฐ๊ฑด์ด ์ ๋ง์ผ๋ฉด ํ๋ฒ๋ ์คํ ์ํ ์ ์์ง๋ง, d
\--------------------\[0, 0] \[0, 1] \[0, 2] \--------------------\[1, 0] \[1, 1] \[1, 2] \--------------------\[2, 0] \[2, 1] \[2, 2] ์ถ๋ ฅ๊ฒฐ๊ณผ1) ๊ตฌ๊ตฌ๋จ์ ๋์ค๊ฒ
(1)์ถ๋ ฅ๊ฒฐ๊ณผ(2)์ถ๋ ฅ๊ฒฐ๊ณผ(3)123451234123121์ถ๋ ฅ๊ฒฐ๊ณผAABABCABCDABCDE์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ๋ฉ์๋(method): ์ด๋ ํ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์์ค ์ฝ๋๋ก ๋ฌถ์ด๋๊ณ ํ์(ํธ์ถ)์ ๋ฐ๋ผ ๋์ํ๋ ๊ธฐ๋ฅ (๋ค๋ฅธ ์ธ์ด์์๋ ํจ์(function)์ผ๋ก ๋ถ๋ฆผ
(1) starReversePrint(5);์ถ๋ ฅstarReversePrint๋ผ๋ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์์ฑ์ถ๋ ฅ๊ฒฐ๊ณผ(2) starPrint(5);์ถ๋ ฅ๊ฒฐ๊ณผ(3) oneToHap(10); // 1๋ถํฐ 10๊น์ง์ ํฉ์ถ๋ ฅ๊ฒฐ๊ณผ(4) toHap(2,10); // 2๋ถํฐ 10๊น์ง์
scope๋ ์์ญ, ๋ฒ์๋ผ๋ ๋ป์ผ๋ก ๋ณ์๋ ๋ณ์๊ฐ ์ ์ธ๋ ์์ ๋ถํฐ ํด๋น ๋ณ์๊ฐ ์ํ ์ค๊ดํธ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅclass ํด๋์ค ๋ฐ์์์ ๋ณ์ ์ ์ธ์ ๋ถ๊ฐ๋ฅ๊ฐ์ ์์ญ ๋ด์์ ๋์ผ ์ด๋ฆ์ ๋ณ์ ์ ์ธ์ ๋ถ๊ฐ๋ฅ์ง์ญ๋ณ์(local variable): ํจ์ ์์์ ์ ์ธ๋ ๋ณ์์ธ์ค
๊ทธ๋ฆฌ๋ ์ค๐ ํด๋์ค(Class)๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ์ค๊ณ๋ ํน์ ํ์ฐ๊ด๋์ด ์๋ ๋ณ์์ ๋ฉ์๋์ ์งํฉ๐ ๊ฐ์ฒด(Object)์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์ํด๋์ค์ ์ ์ธ๋ ๋ชจ์ ๊ทธ๋๋ก ์์ฑ๋ ์ค์ฒดํด๋์ค์ ์ธ์คํด์ค(instance) ๋ผ๊ณ ๋ถ๋ฅธ๋ค.๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค
ref1์ ์ฃผ์๊ฐ์ด ref2์ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ๋์ด ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค.์ถ๋ ฅ๊ฒฐ๊ณผ:์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผcheck(ref); โ ์๋ check ํจ์๋ก ์ฃผ์๊ฐ(์ฐธ์กฐ๊ฐ) ์ ๋ฌ ์ฐธ์กฐ๋ณ์๋ null๊ฐ์ผ๋ก ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ฐ, ์ด๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ง ์๋๋ค๋ ๋ป์ผ๋ก ์ฐธ์กฐํ๋ ์ธ์คํด์ค์์ ๊ด๊ณ๋ฅผ ๋๋ ๊ฒ์ ์๋ฏธํจnull์ ๋์ ํ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋
1) ํด๋์ค ์ด๋ฆ์ฒซ ๋ฌธ์๋ ๋๋ฌธ์๋ก ์์ํ๋ค.๋ ์ด์์ ๋จ์ด๊ฐ ๋ฌถ์ฌ์ ํ๋์ ์ด๋ฆ์ ์ด๋ฃฐ ๋, ์๋ก์ด ๋จ์ด๋ ๋๋ฌธ์๋ก ์์ํ๋ค. (Camel Case) 2) ํจ์์ ๋ณ์๋ฉ์๋ ๋ฐ ๋ณ์ ์ด๋ฆ์ ์ฒซ ๋ฌธ์๋ ์๋ฌธ์๋ก ์์ํ๋ค.๋ ์ด์์ ๋จ์ด๊ฐ ๋ฌถ์ฌ์ ํ๋์ ์ด๋ฆ์ ์ด๋ฃฐ ๋
์ถ๋ ฅ๊ฒฐ๊ณผthis : ํ์ฌ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์๋ฏธํ๋ฉฐ, ํ์ฌ ํด๋์ค์ ๋งด๋ฒ๋ณ์ (field) ๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค.์๊ธฐ ์์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ญํ ์ ํ๋ค.์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถ ํ๋ ์ญํ ์ ํ๋ค์ธ์คํด์ค๊ฐ ์๊ธฐ ์์ ์ ์ฃผ์๋ฅผ ๋ฐํํ ๋ ์ฌ์ฉํ๋ค
์ ๋ณด ์๋(Hidden Information): ํด๋์ค ๋ด๋ถ์์ ์ฌ์ฉํ ๋ณ์๋ ๋ฉ์๋๋ฅผ private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ๋ ๊ฒ๋ฐฉ๋ฒ: ๋ฐ์ดํฐ ๋ฉค๋ฒ ๋ณ์๋ private๋ก ๋ง๊ณ ๋ฐ์ดํฐ ๋ฉค๋ฒ ๋ณ๊ฒฝ์ ํจ์๋ฅผ ํตํด์ ์งํํ๋ค.๋ค์ ๋ฉค๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์ง์ฌ๊ฐํ์
ํด๋์ค ๋ณ์: ๋ฉค๋ฒ๋ณ์ ์ค static์ด ๋ถ์ ๊ฒ= Static ๋ณ์ = ๊ณต์ ๋ณ์ = ์ ์ ๋ณ์(C์ธ์ด์์ ์ฌ์ฉ)static ํค์๋๊ฐ ์ ๋ถ์ด ์์ผ๋ฉด ์ธ์คํด์ค ๋ณ์์ด๋ค.ํด๋์ค ๋ด๋ถ ์ ๊ทผ: static ๋ณ์๊ฐ ์ ์ธ๋ ํด๋์ค ๋ด์์๋ ์ด๋ฆ๋ง์ผ๋ก ์ง์ ์ ๊ทผ ๊ฐ๋ฅํด๋์ค ์ธ๋ถ
โ ๋ฉ์๋ ์์ญ (Method Area): ํด๋์ค ๋ฉค๋ฒ ๋ณ์์ ์ด๋ฆ, ๋ฐ์ดํฐ ํ์ , ์ ๊ทผ ์ ์ด์ ์ ๋ณด์ ๊ฐ์ ๊ฐ์ข ํ๋ ์ ๋ณด๋ค๊ณผ ๋ฉ์๋ ์ ๋ณด, ๋ฐ์ดํฐ Type ์ ๋ณด, Constant Pool, static๋ณ์, final class ๋ฑ์ด ์์ฑ๋๋ ์์ญโก ํ ์์ญ (He
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading): ๊ฐ์ ๋ฉ์๋์ ์ด๋ฆ์ผ๋ก ๋งค๊ฐ๋ณ์์ ๋ฐ์ดํฐ ํ์ ๋๋ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ํ๋ ๊ฒ๋ฉ์๋์ ์ฌ์ฉ๋๋ ์ด๋ฆ์ ์ ์ฝํ ์๋ ์๊ณ , ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ์ ๋ฌํด์ผ ํ ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์์ ๋ํด ํฌ๊ฒ ์ ๊ฒฝ์ ์ฐ์ง ์๊ณ ํธ์ถํ
s1๋ heap ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํด๋น ์ธ์คํด์ค์ ์ฃผ์๊ฐ ์ฐธ์กฐ.this๋ s1์ ์ฃผ์๊ฐ์ ๋๊ฐ์ด ์ฐธ์กฐํ๋ค.this๋ ํ๋์ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์๋ช ๊ณผ ํ๋ผ๋ฏธํฐ๋ณ์๋ช ์ด ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฉค๋ฒ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.this.๋ณ์๋ช ์ผ๋ก ์ ๊ทผํ๋ค.Person class ์์ re
์ถ๋ ฅ์ด์ : 240ํ๊ท : 80์ถ๋ ฅ๊ฒฐ๊ณผString: ๊ฐ์ฒด์ ํ ๋น๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ (=๋ถ๋ณ, immutable) โ ๋ฌธ์์ด์ ๋ํ ๋ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๋ฐฉ์StringBuilder์ StringBuffer: ๊ฐ์ฒด์ ํ ๋น๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ(mutable) โ
int\[] ref = new int5;๋ฐ์ดํฐ ํ์ : int\[] -> ๊ฐ์ฒด ์์ฑint5: intํ ๋ฉ๋ชจ๋ฆฌ ๋ฐฉ 5๊ฐ ์์ฑ (๋ฐ๋์ ์ฐ์๋ intํ)double ar2 = new double7: doubleํ ๋ฉ๋ชจ๋ฆฌ 7๊ฐ (8byte x 7)int ๋ฐฐ์ด 10 ๊ฐ ์ ์ธํ
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ
1. enhanced for๋ฌธ 2. ์ธ์คํด์ค ๋ฐฐ์ด ๋์ for-each๋ฌธ (Boxํ)
์ถ๋ ฅ๊ฒฐ๊ณผ32์ธ์น 1024์ปฌ๋ฌ์ถ๋ ฅ๊ฒฐ๊ณผclass Man: ์์์ ๋์์ด ๋๋ ํด๋์ค ์์ ํด๋์ค, ๋ถ๋ชจ ํด๋์ค, ๊ธฐ์ด ํด๋์คclass BusinessMan: ์์์ ํ๋ ํด๋์ค์ ํ์ ํด๋์ค, ์์ ํด๋์ค, ์ ๋ ํด๋์ค
๐IS A ๊ด๊ณ(is a relationship, inheritance) ๋ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ๊ณผ ๊ตฌ์ฒด์ ์ธ ๊ฐ๋ ์ ๊ด๊ณ - ์์์ผ๋ก ์ฐ๊ฒฐ'~์ ~์ด๋ค' ์ ๊ด๊ณex) ์๋ ๋๋ฌผ์ด๋ค.๐HAS A ๊ด๊ณ(has a relationship, association) ๋ ์ผ๋ฐ์ ์ธ
๋ถ๋ชจ ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค์์ ์ฌ์ ์ํ๋ ๊ฒ์์๋ฐ์ ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์๋ ์์ง๋ง, ์์ ํด๋์ค์์ ์ํฉ์ ๋ง๊ฒ ๋ณ๊ฒฝํด์ผํ๋ ๊ฒฝ์ฐ ์ค๋ฒ๋ผ์ด๋ฉํ ํ์๊ฐ ์๊ธด๋ค.๐์ค๋ฒ๋ผ์ด๋ฉ ์กฐ๊ฑด์์ ํด๋์ค์์ ์ค๋ฒ๋ผ์ด๋ฉํ๊ณ ์ ํ๋ ๋ฉ์๋์ ์ด๋ฆ, ๋งค๊ฐ๋ณ์, ๋ฆฌ
๋ถ๋ชจํด๋์ค: ์์ํด๋์ค ๋๋ ์ํผํด๋์ค (Super class)์์ํด๋์ค: ํ์ํด๋์ค ๋๋ ์๋ธํด๋์ค (Sub class)super ํค์๋๋ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์ ํธ์ถ์ด๊ณ , this ํด๋์ค๋ ์์ ์ ์์ฑ์ ํธ์ถ์ด๋ค.๋จ์ผ ์์: ํ ๊ฐ์ ํด๋์ค๋ง ๋ถ๋ชจํด๋์ค๋ก ๋ฐ์ ์ ์
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ์ ๋ํ ์ด์ (Annotation): ์ฌ์ ์ ์๋ฏธ๋ก๋ ์ฃผ์, ์ฃผํด, ๋ฉ๋ชจ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ํฅ์ ๋ฏธ์น์ง ์์ง๋ง ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊ฒ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ฉ๋ํ์ค ์ ๋ํ ์ด์ ๊ณผ ๋ฉํ ์ ๋ํ ์ด์ ์ผ๋ก ๋๋จ๐ํ์ค ์ ๋ํ ์ด์ Objectํด๋์ค๋ ๋ชจ๋ ํด๋์ค์ ์ต์์
์ฒ ์ ํ์์ ๋ค์ 3๊ฐ์ ํ๋์ ๋ฉ์๋๋ฅผ ๊ฐ์ง 4๊ฐ์ ํด๋์ค Add, Sub, Mul, Div๋ฅผ ์์ฑํ๋ ค๊ณ ํ๋คint ํ์ ์ a, b ํ๋: 2๊ฐ์ ํผ์ฐ์ฐ์void setValue(int a, int b): ํผ์ฐ์ฐ์ ๊ฐ์ ๊ฐ์ฒด ๋ด์ ์ ์ฅํ๋ค.int calculate()
์ถ๋ ฅ๊ฒฐ๊ณผfinal class: ํด๋์ค๊ฐ ๋ง์ง๋ง์ด๋ค โ ๋ ์ด์ ๋ค๋ฅธ ํด๋์ค๊ฐ ์์ํ ์ ์๋ค.final method: ํจ์๊ฐ ๋ง์ง๋ง์ด๋ค. โ ๋ค๋ฅธ ํด๋์ค์์ overriding ํ ์ ์๋ค.interface + interface๋ช ();โ ํจ์ ์ ์ธ๋ถ(์ ์), body
์๋ฌ(Error)๋ JVM ์คํ์ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ์ด๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ๋์ฒํ ๋ฐฉ๋ฒ์ด ์๋ค. ์์ธ(Exception)๋ ์ฌ์ฉ์์ ์๋ชป๋ ์กฐ์ ๋๋ ๊ฐ๋ฐ์์ ์๋ชป๋ ์ฝ๋ฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ํ๋ก๊ทธ๋จ ์ค๋ฅ๋ฅผ ๋งํ๋ค.ํ๋ก๊ทธ๋จ์ด ์คํ ์ค ์ด๋ค ์์ธ์ ์ํด์ ์ค์๋์ ํ๊ฑฐ๋ ๋น์ ์์ ์ผ๋ก
๊ธฐ๋ณธ ์๋ฃํ์ (primitive type)์ ๊ฐ์ฒด๋ก ๋ค๋ฃจ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํด๋์ค๊ธฐ๋ณธ ํ์ ์ ๊ฐ์ ๋ด๋ถ์ ๋๊ณ ํฌ์ฅํ๊ธฐ ๋๋ฌธ์ ํฌ์ฅ ๊ฐ์ฒด๋ผ๊ณ ๋ ํ๋ค.๋ํผ ํด๋์ค๋ก ๊ฐ์ธ๊ณ ์๋ ๊ธฐ๋ณธ ํ์ ๊ฐ์ ์ธ๋ถ์์ ๋ณ๊ฒฝํ ์ ์๋ค. (๋ณ๊ฒฝํ๊ณ ์ถ์ผ๋ฉด ์๋ก์ด ํฌ์ฅ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํจ)๊ธฐ
Scanner๋ฅผ ์ด์ฉํ์ฌ ํ ๋ผ์ธ์ ์ฝ๊ณ , ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋ ์ด์ ์ด ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅ์ ๋ฐ๋ณตํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. โexitโ์ด ์ ๋ ฅ๋๋ฉด ์ข ๋ฃํ๋ค.๋จ) stringTokenizer ํ์ฉtry catch ๊ตฌ๋ฌธ ๋ฃ์ผ์์ค.longํ์ ๋๋ ๋ ํฐ ๋ฒ์์ ์ ์๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
Scanner๋ฅผ ์ด์ฉํ์ฌ ํ ๋ผ์ธ์ ์ฝ๊ณ , ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋ ์ด์ ์ด ๋ช ๊ฐ์ธ์ง ์ถ๋ ฅ์ ๋ฐ๋ณตํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. โexitโ์ด ์ ๋ ฅ๋๋ฉด ์ข ๋ฃํ๋ค.๋จ) stringTokenizer ํ์ฉtry catch ๊ตฌ๋ฌธ ๋ฃ์ผ์์ค.longํ์ ๋๋ ๋ ํฐ ๋ฒ์์ ์ ์๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
ํ ๋ง๋๋ก ํน์ (Specific) ํ์ ์ ๋ฏธ๋ฆฌ ์ง์ ํด์ฃผ๋ ๊ฒ์ด ์๋๋ผ ํ์์ ์ํด์ ์ง์ ํ ์ ์๋๋ก ํ๋ ์ผ๋ฐ(Generic) ํ์ ์ ์ด์ผ๊ธฐํฉ๋๋ค.ํํ: Object(์ฐธ์กฐํ ํ์ ) ์๋ฆฌ์ T๊ฐ ๋ค์ด๊ฐ๋ ํ์์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ
1. ArrayList ์ LinkedList ์ ์ฅ๋จ์ ์?
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ set์ ์งํฉ์ ๊ตฌํํ ๊ฒ์ผ๋ก ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๊ณ , ๋ฐ์ดํฐ์ ์ค๋ณต ์ ์ฅ์ ํ์ฉํ์ง ์๋๋ค. ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋์ผ ์ธ์คํด์ค๊ฐ ์ค๋ณต ์ ์ฅ๋์ง ์๋๋ก ํด์ผํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก set์ ํธ์ถํ๊ธฐ ์ํด์ ๋ค์ ๋ ๊ฐ๊ฐ ํธ์ถ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋ฐ๋์ ์ดํด
์ถ๋ ฅ๊ฒฐ๊ณผ๋์ ์ด๋ฆ, ์๋, ๊ฒฝ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง Location ํด๋์ค๋ฅผ ์์ฑํ๊ณ , ๋์ ์ด๋ฆ์ 'ํค'๋ก ํ๋ HashMap<String, Location> ์ปฌ๋ ์ ์ ๋ง๋ค๊ณ , ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ ๋ฐ์ 4๊ฐ์ ๋์๋ฅผ ์ ์ฅํ๋ผ. ๊ทธ๋ฆฌ๊ณ ๋์ ์ด๋ฆ์ผ๋ก ๊ฒ์ํ๋ ํ๋ก๊ทธ๋จ์ ์
์ถ๋ ฅ๊ฒฐ๊ณผ๋์ ์ด๋ฆ, ์๋, ๊ฒฝ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง Location ํด๋์ค๋ฅผ ์์ฑํ๊ณ , ๋์ ์ด๋ฆ์ 'ํค'๋ก ํ๋ HashMap<String, Location> ์ปฌ๋ ์ ์ ๋ง๋ค๊ณ , ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ ๋ฐ์ 4๊ฐ์ ๋์๋ฅผ ์ ์ฅํ๋ผ. ๊ทธ๋ฆฌ๊ณ ๋์ ์ด๋ฆ์ผ๋ก ๊ฒ์ํ๋ ํ๋ก๊ทธ๋จ์ ์
๋์ ํ์ผ: a.pptx์ฌ๋ณธ ์ด๋ฆ: d.pptx์ถ๋ ฅ๊ฒฐ๊ณผ๋ณด์กฐ ์คํธ๋ฆผ์ ์ผ๋ถ๊ฐ FilterputStream, FilterOutputStream ํด๋์ค์ ํ์ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ ํํฐ ์คํธ๋ฆผ์ด๋ผ๊ณ ํ๋ค.๋ฌธ์ ๋ณํ, ์ ์ถ๋ ฅ ์ฑ๋ฅ ํฅ์, ๊ธฐ๋ณธ๋ฐ์ดํฐ ํ์ ์ ์ถ๋ ฅ, ๊ฐ์ฒด ์ ์ถ๋ ฅ ๋ฑ์
๋จ์ผ ํ๋ก์ธ์ค: ํ ์์ ์ด ๋๋๊ณ ๋์์ผ ๋ค๋ฅธ ์์ ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ๋ฉํฐ ํ๋ก์ธ์ค : ๋ ๋ฆฝ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ , ๋์์ ์ฌ๋ฌ๊ฐ์ง ์์ ์ ์ฒ๋ฆฌ๋ฉํฐ ์ค๋ ๋: ํ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ , ๋ด๋ถ์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ์์ ์ ์ฒ๋ฆฌ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ด์์ฒด์ OS๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ๋
synchronized ์๋ต ์, ๋ฌด๋ถ๋ณํ๊ฒ ๊ฐ ์ถ๋ ฅ( display - for๋ฌธ 1๋ฒ ์งํ ํ, ๋ค๋ฅธ Thread ๊ฐ ๋ฌด๋ถ๋ณํ๊ฒ ์คํ )synchronized ํจ์๋ฅผ ํตํด ํ๋์ Thread๊ฐ ์คํ์ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆผ.ํธ์คํธ(Host)์ด๋ฆ๊ณผ IP ์ฃผ์๋ฅผ ๋ณด์ฌ์ฃผ๋
์คํ ์ TcpServer๋ฅผ ๋จผ์ ์คํํ์ฌ ์๋ฒ์ ์ ์ํ๊ณ TcpClient๋ฅผ ์คํํ์ฌ ์ฑํ ์ ์์์๋๋ฐฉ์ IP๋ฅผ ํ์ฉํ์ฌ ์ผ๋์ผ ์ฑํ ์ฌ์ฉ ๊ฐ๋ฅ์ํํธ์จ์ด๋ก ๊ตฌํ์ํจ ์ถ์์ ์ธ ํฌํธ๋ก, ๊ฐ ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ ํต์ ์ ์ํํ๋ ๋๊ตฌ์์ผ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ํฌํธ๋ ์ถ์ ๊ตฌ
Parameter์ ํจ์ ๋ณธ์ฒด ์ฌ์ด -> ํ์โ main
IO ์คํธ๋ฆผ๊ณผ๋ ์ ํ ๋ค๋ฅธ ๊ฐ๋ ์๋ฐ์์๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ๊ฒ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ๋ฐ๋ณต๋ฌธ์ด๋ ๋ฐ๋ณต์(iterator)๋ฅผ ์ฌ์ฉํ์ฌ ๋งค๋ฒ ์๋ก์ด ์ฝ๋๋ฅผ ์์ฑ์ด๋ ๊ฒ ์์ฑ๋ ์ฝ๋๋ ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ๊ณ ๊ฐ๋ ์ฑ๋ ๋จ
โ StreamExample.java๊ฒฐ๊ณผโ StreamExample.java๊ฒฐ๊ณผ
https://gent.tistory.com/383call by value ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํจ์ ํธ์ถํํ๋ก ๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ๊ฒฐ๊ณผ์ด์ ๋ swap() ๋ฉ์๋ ํธ์ถ ์ ์ฌ์ฉํ ์ธ์ a, b์ swap() ๋ฉ์๋๋ด์ ๋งค๊ฐ๋ณ์ a, b๋ ์๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธCall by