Home - accidentlywoo/java GitHub Wiki

Welcome to the java wiki!

๋ฐ”์ดํŠธ ์ž…์ถœ๋ ฅ

๋ฌธ์ž ์ž…์ถœ๋ ฅ



์ž๋ฐ” ์–ธ์–ด์˜ ํƒ„์ƒ

- 1991๋…„

Green Project์—์„œ ๊ฐ€์ •์šฉ ์ „์ž๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์€ ์ปดํ“จํ„ฐ ์–ธ์–ด๋ฅผ ๋””์ž์ธํ•จ.

  • ๊ฐ€์ •์šฉ ์ „์ž๊ธฐ๊ธฐ์— ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋Š” ์ž‘๊ณ  ๊ฒฌ๊ณ ํ•ด์•ผ ํ•˜๋ฉฐ, ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ•„์š”๋กœ ํ•จ.
  • ๋‹ค๋ฅธ CPU๊ฐ€ ์„ ํƒ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๋””๋ฐ”์ด์Šค์— ์ข…์†๋˜์ง€ ์•Š์•„์•ผ ํ•จ. -> Virtual Machine์—์„œ ๋™์ž‘ํ•˜๋Š” ์ค‘๊ฐ„์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ด์‹์„ฑ์ด ๋†’์€ ์–ธ์–ด๋ฅผ ๋””์ž์ธํ•จ.

- 1992๋…„

C++๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ฌ : ์ ˆ์ฐจ์ง€ํ–ฅ + ๊ฐ์ฒด์ง€ํ–ฅ -> Oak : ์™„๋ฒฝํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด

- 1994๋…„

๊ฐ€์ „์ œํ’ˆ์—์„œ ์ฃผ๋ชฉ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ์›น์œผ๋กœ ์‹œ์„ ์„ ๋Œ๋ฆผ World Wide Web์˜ ๋ฐœ์ „๊ณผ Mosaic์˜ ์‚ฌ์šฉ์— ์ฃผ๋ชฉ -> ์ž๋ฐ”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € ์ œ์ž‘ : HotJava๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฐœ์ „ํ•จ

HotJava : Applet์ด๋ผ ๋ถˆ๋ฆฌ๋Š” ์ž๋ฐ”์˜ ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ค‘๊ฐ„์ฝ”๋“œ(Bytecode)๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ฆ.

- 1995๋…„

Netscape 2.0์—์„œ๋ถ€ํ„ฐ ์ž๋ฐ”๊ฐ€ ์ง€์›๋จ. ๋งŽ์€ ์—…์ฒด๋“ค์ด ์ž๋ฐ”๋ฅผ ์ง€์›ํ•˜๊ฒŒ ๋จ.

์ž๋ฐ”์˜ ํŠน์ง•

๋‹จ์ˆœ, ๊ฐ์ฒด์ง€ํ–ฅ, ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ, ๊ฒฌ๊ณ , ์•ˆ์ „, ํ”Œ๋žซํผ ๋…๋ฆฝ, ๋†’์€ ์„ฑ๋Šฅ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ, ๋™์ 

๋‹จ์ˆœ

C์–ธ์–ด์™€ C++์–ธ์–ด์˜ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ. C ์ ˆ์ฐจ์ง€ํ–ฅ์–ธ์–ด + C++ ๊ฐ์ฒด์ง€ํ–ฅ ์š”์†Œ

-> C++์˜ ์ „์œ„์ฒ˜๋ฆฌ, ํฌ์ธํ„ฐ ์‚ฌ์šฉ, ๋‹ค์ค‘ ์ƒ์†, ๊ตฌ์กฐ์ฒด, goto๋ฌธ ์‚ฌ์šฉ, ์—ฐ์‚ฐ์ž ์ค‘๋ณต ๊ธฐ๋Šฅ..๋“ฑ์„ ์ œ์™ธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(Garbage Collector)์— ์˜ํ•œ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋กœ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋จ.

-> C์™€ C++์–ธ์–ด์— ๋น„ํ•ด ์ž‘๊ณ  ๊ฐ„ํŽธ

๊ฐ์ฒด์ง€ํ–ฅ

C++์„ ๊ธฐ์ดˆ๋กœ ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด.

๊ฐ์ฒด์ง€ํ–ฅ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์žฌ์‚ฌ์šฉ์„ฑ(Reusability)์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

  • ๋‹จ์ˆœํžˆ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋„˜์–ด์„  ๊ฐ์ฒด์˜ ์žฌ์‚ฌ์šฉ์„ ๋œปํ•จ.
  • ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ˆ˜๋งŽ์€ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ API๋กœ ์ œ๊ณตํ•จ.

๋ถ„์‚ฐ์ฒ˜๋ฆฌ

๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ TCP/IP๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์–ธ์–ด.

  • TCP/IP ๋„คํŠธ์›Œํฌ ๊ธฐ๋Šฅ ๋‚ด์žฅ
  • HTTP, FTP ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต
  • ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ ์ƒ์˜ ๊ฐ์ฒด๋“ค๋„ ์›๊ฒฉ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์›๊ฒฉ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ RMI(Remote Method Invocation) ๊ธฐ๋Šฅ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต

์ธํ„ฐํ”„๋ฆฌํ„ฐ

  1. ์†Œ์Šค์ฝ”๋“œ(.Java)

--์ปดํŒŒ์ผ(Compiling javac)-->

  1. ์ค‘๊ฐ„์ฝ”๋“œ(.class):๋ฐ”์ดํŠธ์ฝ”๋“œ=ํด๋ž˜์ŠคํŒŒ์ผ

--๊ธฐ๊ณ„์–ด๋กœ ํ•ด์„(Interpreting:java)--> ์‹คํ–‰.

-> ์ž๋ฐ”๋Š” ์ปดํŒŒ์ผ ์–ธ์–ด์ž„๊ณผ ๋™์‹œ์— ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฒฌ๊ณ 

๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ(os)์ƒ์—์„œ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ์—๋Ÿฌ์˜ ์›์ธ์ด ๋˜๋Š” ์š”์†Œ๋“ค์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐ

  • ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ.
  • ์ž๋™์œผ๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collector)๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•จ
  • ์—„๊ฒฉํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด ์—๋Ÿฌ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•จ
  • ์‹คํ–‰ ์‹œ๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•จ.

์•ˆ์ „

์ปดํŒŒ์ผ ์‹œ์— ์—„๊ฒฉํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•จ์œผ๋กœ์จ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์ •์ƒ์ ์ธ ์ƒํ™ฉ์„ ๋ฏธ๋ฆฌ ๋ฐฉ์ง€

  1. .java(์†Œ์Šค์ฝ”๋“œ)

  2. ์ปดํŒŒ์ผ๋Ÿฌ(Compile)

  3. .class(๋ฐ”์ดํŠธ ์ฝ”๋“œ)

-- ์‹คํ–‰ ์‹œ--

    • ํด๋ž˜์Šค ๋กœ๋” : ์ฝ”๋“œ ๋ถ„๋ฆฌ : ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์˜จ๊ฒƒ์ธ์ง€, ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์˜จ๊ฒƒ์ธ์ง€ ๋จผ์ € ๋ถ„๋ฆฌ
    • ๋ฐ”์ดํŠธ ์ฝ”๋“œ ๊ฒ€์ฆ๊ธฐ : ์ฝ”๋“œ ๊ฒ€์ฆ : ๋ฌธ์ œ๊ฐ€ ์—†์„๋•Œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋กœ ๋„˜์–ด๊ฐ
  1. ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Interpreter)

-> ์‹คํ–‰.

ํ”Œ๋žซํผ ๋…๋ฆฝ์ 

์‚ฌ์šฉํ•˜๋Š” ์šด์˜์ฒด์ œ๋‚˜ CPU๋“ฑ์˜ ํ•˜๋“œ์›จ์–ด ์‚ฌ์–‘์— ๊ด€๊ณ„ ์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Œ.

  1. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ --์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ(.java)-->

  2. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ --์ž๋ฐ” ๋ฐ”์ดํŠธ ์ฝ”๋“œ(.class)-->

  3. ์ž๊ฐ€ ๊ฐ€์ƒ๋จธ์‹  --๊ธฐ๊ณ„์–ด์ฝ”๋“œ-->

-> ํ”Œ๋žซํผ ๋…๋ฆฝ์ 

  1. Unix, Win, Mac..

๋†’์€ ์„ฑ๋Šฅ

๊ฐ€๋น„์ง€ ์ปฌ๋ž™์…˜(Garbage Collection)๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ์–ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

  • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋œ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์ถ”์  ๊ด€๋ฆฌ
  • ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(MultiThread)

์Šค๋ ˆ๋“œ : ๋…์ž์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ

๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ : ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •, ํ•˜๋‚˜์˜ CPU๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•จ -> ์ˆ˜ํ–‰ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•จ

๋™์ (Dynamic)

  • ์ž๋ฐ” ์–ธ์–ด๋Š” ๋ณ€ํ™”๋˜๋Š” ํ™˜๊ฒฝ์— ์ž˜ ์ ์‘๋˜๋„๋ก ์„ค๊ณ„๋จ
  • ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๋‚˜ ์†์„ฑ๋“ค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
  • ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ์—ฐ๊ฒฐ์„ ์‹คํ–‰์‹œ๊ฐ„์— ์ˆ˜ํ–‰ํ•จ.

์ž๋ฐ” ํ”Œ๋žซํผ์˜ ์ข…๋ฅ˜

ํ”Œ๋žซํผ(Platform)์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ์„ ์˜๋ฏธ

  • ์ผ๋ฐ˜์ ์ธ ํ”Œ๋žซํผ : ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด : ํ•˜๋“œ์›จ์–ด๋ฅผ ์ œ์–ดํ•˜๋Š” ์šด์˜์ฒด์ œ

  • ์ž๋ฐ” ํ”Œ๋žซํผ : ์†Œํ”„ํŠธ์›จ์–ด๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋จ : JDK(Java Development Kit)๋กœ ์„ค์น˜๋จ : JAVA SE, JAVA EE, JAVA ME

  1. Java SE(Standard Edition) ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์—๋””์…˜์œผ๋กœ์จ, ์ž๋ฐ” ์–ธ์–ด ๋Œ€๋ถ€๋ถ„์˜ ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋จ.

  2. Java EE(Enterprise Edition) ํ˜„์—…์—์„œ ์‚ฌ์šฉ๋˜๋Š” API๋“ค์ด ์ง‘์•ฝ๋œ ์—๋””์…˜ ex) ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” JSP,Servlet,JDBC,JNDI,EJB๋“ฑ์˜ ๋งŽ์€ ๊ธฐ์ˆ ๋“ค์ด ํฌํ•จ๋จ.

  3. Java ME(Micro Edition) ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” API๊ฐ€ ํฌํ•จ๋œ ์—๋””์…˜ ์Šค๋งˆํŠธํฐ์˜ ์ž์ฒด์ ์ธ OS๋กœ ์ธํ•ด ์ž์ฒด API(์•ˆ๋“œ๋กœ์ด๋“œ SDK, ios SDF)์˜ ์‚ฌ์šฉ -> ํ˜„์žฌ๋Š” ๊ฑฐ์˜ ์‚ฌ์žฅ๋จ.

์ผ๋ฐ˜์ ์ธ ํ”Œ๋žซํผ ๊ตฌ์กฐ

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Application)

  2. ์šด์˜์ฒด์ œ(OS) : Windows, Unix, Linux, Macintosh ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•˜๊ณ ์žํ•˜๋Š” ์ผ์„ ํ•˜๋“œ์›จ์–ด์— ์ „๋‹ฌ -> ํ†ต์‹ ์„ ๋‹ด๋‹น

  3. ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ : Intel,SPARC,PowerPC

์ž๋ฐ” ํ”Œ๋žซํผ ๊ตฌ์กฐ

  1. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ JVM์œ„์—์„œ ๋™์ž‘

  2. ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM) : ์ž๋ฐ” API(ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

  3. ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์•„ ํ”Œ๋žซํผ

์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (Java Virtual Machine)

  1. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ
  • ์ž๋ฐ” ์–ธ์–ด๋กœ ์“ฐ์—ฌ์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ ์ˆ˜ํ–‰
  1. ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ 
  • ์ž๋ฐ”๋กœ ์“ฐ์—ฌ์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํŠน์ • ์šด์˜์ฒด์ œ ์ค‘๊ฐ„์— ์กด์žฌํ•˜์—ฌ ์„œ๋กœ๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์šด์˜์ฒด์ œ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณต
  1. OS(win,linux,unix) ๋‹จ! JVM์€ ์šด์˜์ฒด์ œ์™€ ์ง์ ‘์ ์œผ๋กœ ํ†ต์‹ ์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ์— ๋งž๋Š” JVM์„ ์„ค์น˜ํ•ด ์ฃผ์–ด์•ผ ํ•จ.

์ž๋ฐ” API(Application Programming Interface)

์ž๋ฐ” ํ”Œ๋žซํผ์—์„œ ์ œ๊ณต

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค(Class)๋“ค์„ ๊ฑฐ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ
  • ๋ฏธ๋ฆฌ ์ œ๊ณต๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ํ‘œ์ค€ ํด๋ž˜์Šค๋ผ๊ณ  ํ•จ.
  • ์ž๋ฐ” ์–ธ์–ด ์ž์ฒด๋Š” ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ง€๋งŒ, ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์„ API์—์„œ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Œ
  • ์ž๋ฐ” ํŒจํ‚ค์ง€ : java.applet, java.awt, xjava.io, java.lang, java.net, javax.swing, java.utill
  1. java.applet : ์• ํ”Œ๋ฆฟ ์ž‘์„ฑ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋ชจ์•„ ๋†“์€ ํŒจํ‚ค์ง€
  2. java.awt : GUI์ž‘์„ฑ๊ณผ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€.Javax.swingํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์ž๋ฐ” GUI์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ ์‹œ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•จ. ๋ฒ„ํŠผ, ํ…์ŠคํŠธํ•„๋“œ, ๋ฉ”๋‰ด ๋“ฑ ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ์™€ ์ด๋ฒคํŠธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ.
  3. java.applet : ์ž๋ฐ” ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€. ํŒŒ์ผ์ด๋‚˜ ๋ฒ„ํผ ๋“ฑ์˜ ์ž…์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ.
  4. java.lang : ์ž๋ฐ” ์–ธ์–ด์˜ ๊ธฐ์ดˆ์ ์ธ ์‚ฌํ•ญ์„ ์ •์˜ํ•œ ํด๋ž˜์Šค์™€ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€.Objectํด๋ž˜์Šค, ๋ฌธ์ž์—ด ๊ด€๋ จ, ์‹œ์Šคํ…œ ๊ด€๋ จ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ด€๋ จ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•จ.
  5. java.net : ์ž๋ฐ”์˜ ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ํŒจํ‚ค์ง€. ์ด ํŒจํ‚ค์ง€ ๋‚ด์—๋Š” ์†Œ์ผ“๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ.
  6. javax.swing : java.awtํŒจํ‚ค์ง€์™€ ๋”๋ถˆ์–ด ์ž๋ฐ” GUI์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€.java.awtํฌํ•จ ๋‚ด์šฉ๋ณด๋‹ค ๋‹ค์–‘ํ•˜๊ณ , ์œตํ†ต์„ฑ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•จ.
  7. java.util : ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€. ๋‚ ์งœ ํ‘œํ˜„์ด๋‚˜ ์—ฌ๋Ÿฌ ์ž๋ฃŒํ˜•์„ ํ•˜๋‚˜๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ์ปฌ๋ ‰์…˜๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ.

์ž๋ฐ” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(JDK)

  • ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์น˜
  • ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ถ„์•ผ์— ๋”ฐ๋ผ ์„ธ ๊ฐ€์ง€ ํ”Œ๋žซํผ์œผ๋กœ ๊ตฌ๋ถ„๋จ.

JDK์™€ SDK

  • ์ž๋ฐ” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(JDK)๊ณผ ์‹คํ–‰ํ™˜๊ฒฝ(JRE:Java Runtime Environment)์„ ๋‚˜๋ˆ„์–ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JDK๋Š” ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๊ฐ€ ๋“ค์–ด์žˆ์œผ๋ฉฐ, JRE๋Š” JDK์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋„๊ตฌ๋ฅผ ์ œ์™ธํ•œ, ๋ง ๊ทธ๋Œ€๋กœ ์‹คํ–‰๋งŒ์„ ์œ„ํ•œ ๋„๊ตฌ๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ JRE๋งŒ์œผ๋กœ๋Š” ์ž‘์„ฑ๋œ ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํฌํ•จํ•œ SDK(Software Development Kit)๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • JDK์™€ SDK๋Š” ๋™์ผํ•œ ์˜๋ฏธ์˜ ์šฉ์–ด๋กœ ์ดํ•ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ JDK1.2๋ฒ„์ „๋ถ€ํ„ฐ JDK๋ฅผ SDK๋ผ๋Š” ์šฉ์–ด์™€ ํ˜ผ์šฉํ•ด์„œ ๋ถ€๋ฅด๋Š”๋ฐ, ์ด๋Š” ๊ธฐ์กด์˜ 1.x๋ฒ„์ „๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ƒ๋‹นํžˆ ๋งŽ์€ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๊ฐœ๋…์˜ JDK๋ผ๋Š” ์˜๋ฏธ๋กœ SDK๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ๋งˆ์น˜ ์ž๋™์ฐจ ํšŒ์‚ฌ์—์„œ ๊ธฐ์กด์˜ ๋ธŒ๋žœ๋“œ์—์„œ ์ „ํ˜€ ๋‹ค๋ฅธ ๋””์ž์ธ๊ณผ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ๋“œ๋ฅผ ๋ฐœํ‘œํ•  ๋•Œ,'์˜ฌ ๋‰ด xx'์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ถ€๋ฅด๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

JDK ํด๋” ๊ตฌ์กฐ

  • bin : ์ž๋ฐ” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๊ด€๋ จ๋œ ๊ฐ์ข… ๋ช…๋ น๋“ค์„ ํฌํ•จํ•œ ํด๋”. ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ช…๋ น๋„ ์—ฌ๊ธฐ์— ํฌํ•จ๋จ
  • include : ํ”Œ๋žซํผ ๋ณ„๋กœ ํ•„์š”ํ•œ JDK์˜ ๊ฐ์ข… ํ—ค๋” ํŒŒ์ผ๋“ค์„ ํฌํ•จํ•œ ํด๋”
  • jre : ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ ๊ด€๋ จ ๋ช…๋ น์–ด์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•œ ํด๋”
  • lib : ์ž๋ฐ” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•œ ํด๋”

binํด๋”์—์„œ ์ฃผ์š” ์ž๋ฐ” ๋ช…๋ น์–ด ๋ณด๊ธฐ

  • javac(์ž๋ฐ”์†Œ์Šค ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญ), java(์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋ž˜์Šค๋ฅผ ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ ์คŒ), appletviewer(์ผ์ข…์˜ ์ž‘์€ ์›น ๋ธŒ๋ผ์šฐ์ €), jdb(๋””๋ฒ„๊ฑฐ), javadoc(์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ htmlํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์˜ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค, ์ƒ์„ฑ์ž, ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐ์— ๋Œ€ํ•œ htmlํŒŒ์ผ์„ ์ƒ์„ฑํ•จ.), javap(์ปดํŒŒ์ผ ํ›„ ์ƒ์„ฑ๋œ ์ž๋ฐ” ํด๋ž˜์Šค ํŒŒ์ผ์„ ์—ญ์ปดํŒŒ์ผํ•˜์—ฌ ํด๋ž˜์Šค ๋‚ด์˜ ์ •๋ณด๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋„๋กํ•จ.), jar(๋‹ค์ˆ˜ ๊ฐœ์˜ ์ž๋ฐ” ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ .jar๋ผ๋Š” ํŒŒ์ผ๋กœ ์••์ถ•ํ•˜์—ฌ, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ํ”„๋กœ๊ทธ๋žจ ์ „์†ก ์‹œ ์ „์†ก ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ)

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

  • bin ํด๋” ๋‚ด์˜ ๋ช…๋ น์–ด๋“ค์€ $bin ํด๋” ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ path๋ณ€์ˆ˜์— ๋ช…๋ น์–ด๋“ค์ด ๋“ค์–ด ์žˆ๋Š” ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•จ. -> "ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— path์ถ”๊ฐ€" -> ์ž๋ฐ”์˜ ์ปดํŒŒ์ผ, ์ธํ„ฐํ”„๋ฆฌํŠธ ๋“ฑ์— ํ•„์š”ํ•œ ๋ช…๋ น๋“ค์„ ์šด์˜์ฒด์ œ์— ๋“ฑ๋กํ•จ -> ๋ชจ๋“  ๊ฒฝ๋กœ์—์„œ ์ž๋™์œผ๋กœ ๊ทธ ํŒŒ์ผ์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ.

JDK Document์‚ฌ์šฉ

์ž๋ฐ” API Document

  • ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ์ž๋ฐ” ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์ž๋ฐ” ์†Œ์Šค ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ์ œ๊ณต -> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํฌํ•จ๋œ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ณด, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, ๋ณ€์ˆ˜ ๋“ฑ์ด ํ•„์š”ํ•จ.
  • HTMLํŒŒ์ผ๋กœ ๋ฌธ์„œํ™”ํ•˜์—ฌ Oracle ํ™ˆํŽ˜์ด์ง€์—์„œ ์ œ๊ณตํ•จ.

์ดํด๋ฆฝ์Šค(Eclipse)

์ผ๋ฐ˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋“ค์€ ์‹ค์‹œ๊ฐ„ ๋ฌธ๋ฒ• ์ฒดํฌ๋‚˜ ๋””๋ฒ„๊น…๊ธฐ๋Šฅ, ์†Œ์Šค ์ž๋™ ์ƒ์„ฑ ๊ธฐ๋Šฅ ๋“ฑ์ด ์ œ๊ณต๋˜์ง€ ์•Š์Œ ํด๋ž˜์Šค๋ช…, ๋ฉ”์„œ๋“œ๋ช…, ๋ณ€์ˆ˜๋ช… ๋“ฑ์„ ๋ชจ๋‘ ์™ธ์›Œ์„œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Œ. -> ์ดํด๋ฆฝ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ดํด๋ฆฝ์Šค๊ฐ€ jdk๋ฅผ ์ž๋™์ ์œผ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ๋ณ€์ˆ˜์— path์ง€์ •์„ ๊ตณ์ด ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

Iterator์™€ ListIterator

์ž๋ฐ”์˜ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋œ ์š”์†Œ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•์„ Iterator์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ‘œ์ค€ํ™”ํ•˜๊ณ  ์žˆ๋‹ค.

Collection์ธํ„ฐํŽ˜์ด์Šค์—์„œ Iterator์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” iterator()๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜์—ฌ ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋„๋ก ํ•˜๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” List์™€ Set์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋„ iterator() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

LinkedList<Integer> lnkList = new LinkedList<Integer>();

lnkList.add(4);
lnkList.add(2);
lnkList.add(3);
lnkList.add(1);

Iterator<Integer> iter =lnkList.iterator();
while(iter.hasNext()){
  sysout(iter.next()+" ");
}
  • Iterator์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ.
  • boolean hasNext() : ํ•ด๋‹น ์ดํ„ฐ๋ ˆ์ด์…˜(iteration)์ด ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋” ์ด์ƒ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • E next() : ์ดํ„ฐ๋ ˆ์ด์…˜(iteration)์˜ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • default void remove() : ํ•ด๋‹น ๋ฐ˜๋ณต์ž๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ํ˜„์žฌ ์ปฌ๋ ‰์…˜์—์„œ ์ œ๊ฑฐํ•จ JDK1.5๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ Enhanced for ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค.

Enhanced for๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ™์€ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ์˜ˆ๋ฐฉ ํ•ด์ค€๋‹ค.

for(declaration : expression){
  // statement(s)
}
String[] strArr = ["Woo","yeon","hui"];
for(String arr : strArr){
  sysout(arr);
}
  • Enumeration ์ธํ„ฐํŽ˜์ด์Šค Enumeration์ธํ„ฐํŽ˜์ด์Šค๋Š”  JDK1.0๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด์˜จ Iterator์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๋™์ž‘(Enumeration ํ™•์žฅ โ†’ Iterator)

Enumeration์ธํ„ฐํŽ˜์ด์Šค๋Š” hasMoreElements() ์™€ nextElement() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Iterator์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

Enumeration์„ ํ™•์žฅํ•œ Iterator์€ Collection์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„์ƒ์†ํ•œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

Iterator์‚ฌ์šฉ ๊ถŒ์žฅ

  • ListIterator ์ธํ„ฐํŽ˜์ด์Šค ListIterator์ธํ„ฐํŽ˜์ด์Šค๋Š” Iterator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค.

Iterator์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ, JDK1.2๋ถ€ํ„ฐ ์ œ๊ณต๋˜๋Š” ListIterator์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปฌ๋ ‰์…˜ ์š”์†Œ์˜ ๋Œ€์ฒด, ์ถ”๊ฐ€ ๊ทธ๋ฆฌ๊ณ  ์ธ๋ฑ์Šค ๊ฒ€์ƒ‰ ๋“ฑ์„ ์œ„ํ•œ ์ž‘์—…์—์„œ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•œ๋‹ค.

๋‹จ, ListIterator์ธํ„ฐํŽ˜์ด์Šค๋Š” List์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ List์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์—์„œ๋งŒ listIterator() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

LinkedList<Integer> lnkList = new LinkedList<Integer>();

lnkList.add(4);
lnkList.add(2);
lnkList.add(3);
lnkList.add(1);

ListIterator<Integer> iter = lnkList.listIterator();
while(iter.hasNext()){
  sysout(iter.next()+" ");
}

while(iter.hasPrevious()){
  sysout(iter.previous()+" ");
}
  • ListIterator์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ
  • void add(E e) : ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ(list)์— ์ „๋‹ฌ๋œ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•จ( ์„ ํƒ์  ๊ธฐ๋Šฅ )
  • boolean hasNext() : ์ด ๋ฆฌ์ŠคํŠธ ๋ฐ˜๋ณต์ž๊ฐ€  ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœ๋ฐฉํ–ฅ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜, ๋” ์ด์ƒ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด false ๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • boolean hasPrevious() : ์ด ๋ฆฌ์ŠคํŠธ ๋ฐ˜๋ณต์ž๊ฐ€ ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ˆœํšŒํ•  ๋•Œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋” ์ด์ƒ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด false fmf qksghksgka
  • E next() : ๋ฆฌ์ŠคํŠธ์˜ ๋‹ค์Œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ปค์„œ(cusor)์˜ ์œ„์น˜๋ฅผ ์ˆœ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์‹œํ‚ด
  • int nextIndex() : ๋‹ค์Œ next()๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐ˜ํ™˜๋  ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • E previous() : ๋ฆฌ์ŠคํŠธ์˜ ์ด์ „ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ปค์„œ(cusor)์˜ ์œ„์น˜๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™์‹œํ‚ด
  • int previousIndex() : ๋‹ค์Œ previous()๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐ˜ํ™˜๋  ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ
  • void remove() : next()๋‚˜ previos()๋ฉ”์†Œ๋“œ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•จ.
  • void set(E e) : next()๋‚˜ previous()๋ฉ”์†Œ๋“œ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ „๋‹ฌ๋œ ๊ฐ์ฒด๋กœ ๋Œ€์ฒดํ•จ(์„ ํƒ์  ๊ธฐ๋Šฅ)
โš ๏ธ **GitHub.com Fallback** โš ๏ธ