๐Ÿ’ฌPL/๐Ÿ’ซJava

๐Ÿ’ฌPL/๐Ÿ’ซJava

    [Java] ์“ฐ๋ ˆ๋“œ (Thread)

    ํ”„๋กœ์„ธ์Šค์™€ ์“ฐ๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค (process) ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ, ์ž์›(๋ฉ”๋ชจ๋ฆฌ,cpu)๊ณผ ์“ฐ๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ ์“ฐ๋ ˆ๋“œ (thread) ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹ค์ œ ์ž‘์—…์„ ์ˆ˜ํ–‰. ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—๋Š” ์ตœ์†Œํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์กด์žฌ, ๋‘˜ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๋ฅผ '๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค(multi-threaded process)' ๋ผ๊ณ  ํ•œ๋‹ค. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ. ๋ฉ”์‹ ์ €๋กœ ์ฑ„ํŒ…ํ•˜๋ฉด์„œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฑฐ๋‚˜ ์Œ์„ฑ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์˜ ์žฅ์  ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์˜ ๋‹จ์  CPU์˜ ์‚ฌ์šฉ๋ฅ ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ๋™๊ธฐํ™”(synchronization)์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ์ž์›์„..

    [Java] ์˜ˆ์™ธ์ฒ˜๋ฆฌ(exception handling), try-catch๋ฌธ

    Java์˜ ์ •์„ ๊ณต๋ถ€ ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜ 3๊ฐ€์ง€ ์ปดํŒŒ์ผ ์—๋Ÿฌ(compile-time error) ์ปดํŒŒ์ผ ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ(runtime error) ์‹คํ–‰ ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ๋…ผ๋ฆฌ์  ์—๋Ÿฌ(logical error) ์ž‘์„ฑ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋Š” 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆˆ๋‹ค. (์—๋Ÿฌ๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์ง€๋งŒ, ์˜ˆ์™ธ๋Š” ์ฒ˜๋ฆฌํ•˜์ž) ์—๋Ÿฌ(error) ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ์˜ํ•ด์„œ ์ˆ˜์Šต๋  ์ˆ˜ ์—†๋Š” ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ์˜ˆ์™ธ(exception) ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ์˜ํ•ด์„œ ์ˆ˜์Šต๋  ์ˆ˜ ์žˆ๋Š” ๋‹ค์†Œ ๋ฏธ์•ฝํ•œ ์˜ค๋ฅ˜ ์˜ˆ์™ธ์ฒ˜๋ฆฌ(exception handling) ์ •์˜ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ์˜ ๋ฐœ์ƒ์— ๋Œ€๋น„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋ชฉ์  ํ”„๋กœ๊ทธ๋žจ์˜ ๋น„์ •์ƒ ์ข…๋ฃŒ๋ฅผ ๋ง‰๊ณ , ์ •์ƒ์ ์ธ ์‹คํ–‰์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ Exception์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ..

    [Java] File ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ

    File ํด๋ž˜์Šค java.io ํŒจํ‚ค์ง€๋Š” ๊ธฐ์กด์˜ ํŒŒ์ผ์ด๋‚˜ ํด๋”์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” File ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” File ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. File ์ธ์Šคํ„ด์Šค๋Š” ํŒŒ์ผ ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ๋””๋ ‰ํ† ๋ฆฌ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. File ํด๋ž˜์Šค๋Š” FileInputStream, FileReader ์ƒ์„ฑ์ž์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค. File ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ฉ”์„œ๋“œ ๋ฉ”์„œ๋“œ ์„ค๋ช… boolean canRead() ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฉด true ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์—†์œผ๋ฉด false boolean canWrite() ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉด true ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์—†์œผ๋ฉด false boolean createNewFile() ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋ฉด true ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ–ˆ์œผ๋ฉด false boo..

    [Java] ์ œ์–ด์ž(modifier)

    ์ œ์–ด์ž(modifier) ํด๋ž˜์Šค, ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๋ถ€์— ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ๋ถ€๊ฐ€์ ์ธ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. ์ ‘๊ทผ ์ œ์–ด์ž : public, protectde, default, private ๊ทธ ์™ธ : static, final, abstract, native, transient, synchronized, volatile, strictp ์ ‘๊ทผ ์ œ์–ด์ž(access modifier)์˜ ๋ฒ”์œ„ โฌ‡ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ณณ - (ํด๋ž˜์Šค, ๋ฉค๋ฒ„๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž) ์ œ์–ด์ž ๊ฐ™์€ ํด๋ž˜์Šค ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‹ค๋ฅธํŒจํ‚ค์ง€์˜ ์ž์†ํด๋ž˜์Šค ์ „์ฒด public O O O O protected O O O (default) O O private O ๋Œ€์ƒ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์–ด์ž โฌ‡ ๋Œ€์ƒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ œ์–ด์ž ํด๋ž˜์Šค public, (default), f..

    [Java] ๋‹คํ˜•์„ฑ(polymorphism)

    ๋‹คํ˜•์„ฑ(polymorphism) ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ƒ์†, ์ธํ„ฐํŽ˜์ด์Šค, ๋ ˆํผ๋Ÿฐ์Šค ํ˜•๋ณ€ํ™˜, ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹คํ˜•์„ฑ์ด ๋ฌด์—‡์ผ๊นŒ? ๋‹คํ˜•์„ฑ์ด๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ž๋ฃŒํ˜• ์ฒด๊ณ„์˜ ์„ฑ์งˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ, ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์˜ ๊ฐ ์š”์†Œ(์ƒ์ˆ˜, ๋ณ€์ˆ˜, ์‹, ์˜ค๋ธŒ์ ํŠธ, ํ•จ์ˆ˜ ๋“ฑ)๋“ค์ด ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•(type)์— ์†ํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ๊ฐ€๋˜๋Š” ์„ฑ์งˆ ๋‹คํ˜•์„ฑ ์žฅ์  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์˜ ํƒ€์ž…์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๊ฐ€ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์ด ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ฆ๊ฐ€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ํด๋ž˜์Šค์˜ ์ƒ์†์ด๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜(์˜ค๋ฒ„๋ผ์ด๋”ฉ) ํ•˜๊ณ  ์ž์‹ ํด๋ž˜์Šค๋ฅผ ๋ถ€๋ชจ ํƒ€์ž…์œผ๋กœ ์—…์บ์ŠคํŒ…ํ•œ๋‹ค. ..

    [Java] ์ƒ์„ฑ์ž, this(), super()

    ์ƒ์„ฑ์ž ํด๋ž˜์Šค๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ์ž(constructor)๋ผ๋Š” ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ƒ์„ฑ์ž๋Š” ํด๋ž˜์Šค๊ฐ€ new ํ‘œํ˜„์‹์— ์˜ํ•ด ์ธ์Šคํ„ด์Šคํ™”๋˜์–ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ฐ์ฒด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ๊ฐ์ฒด์˜ ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ์˜ ๋ธ”๋ก์ด๋‹ค. ์ƒ์„ฑ์ž๋Š” ์ž๋ฐ” ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜๋„ ์—†๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋ฐฉ๋ฒ•์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ƒ์„ฑ์ž์˜ ํ˜•ํƒœ๋Š” ์ด๋ ‡๋‹ค. public class Example{ public Example(){ . . . } } ์ด๋Ÿฌํ•œ ์ƒ์„ฑ์ž๋Š” new ํ‘œํ˜„์‹์„ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค. Example ex = new Example(); ์ƒ์„ฑ์ž ํŠน์ง• ์ƒ์„ฑ์ž๋Š” ์ ‘๊ทผ ์ œ์–ด์ž์ธ public, protec..

    [Java] List ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค

    List ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค List ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋ชจ๋“  List ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค 1. ์š”์†Œ์˜ ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋œ๋‹ค. 2. ๊ฐ™์€ ์š”์†Œ์˜ ์ค‘๋ณต ์ €์žฅ์„ ํ—ˆ์šฉ. ๋Œ€ํ‘œ์ ์ธ List ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์— ์†ํ•˜๋Š” ํด๋ž˜์Šค 1. ArrayList 2. LinkedList 3. Vector 4. Stack ArrayList ํด๋ž˜์Šค 1. ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜ 2. JDK1.2 ๋ถ€ํ„ฐ ์ œ๊ณต๋œ ํด๋ž˜์Šค 3. ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ €์žฅ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์†Œ์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์€ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ธ์Šคํ„ด์Šค์ด๋ฏ€๋กœ, ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ๊ธฐ์กด์˜ ์š”์†Œ๋“ค์„ ์˜ฎ๊ฒจ์•ผ ํ•˜๋Š” ๋ณต์žกํ•œ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธธ์–ด์ง€๋Š” ๋‹จ์  ์žˆ์Œ // ์ธ์Šคํ„ด์Šคํ™” ArrayList ar..

    [Java] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(Collections Framework)

    ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(collection famework)๋ž€? ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธ ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•ด ๋†“์€ ๊ฒƒ *์ž๋ฃŒ ๊ตฌ์กฐ : ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ณ ์•ˆํ•œ ํ˜•์‹ ์ž๋ฐ”์˜ ์ธํ„ฐํŽ˜์ด์Šค(interface)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ ํ•œ๋‹ค. 1. List ์ธํ„ฐํŽ˜์ด์Šค 2. Set ์ธํ„ฐํŽ˜์ด์Šค 3. Map ์ธํ„ฐํŽ˜์ด์Šค List์™€ Set ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ชจ๋‘ Collection ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ƒ์†์„ ๋ฐ›์ง€๋งŒ, ๊ตฌ์กฐ์ƒ์˜ ์ฐจ์ด๋กœ ์ธํ•ด Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ณ„๋„๋กœ ์ •์˜ํ•œ๋‹ค. ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐ„๋žตํ•œ ํŠน์ง• ์ธํ„ฐํŽ˜..