Home - accidentlywoo/java GitHub Wiki
Welcome to the java wiki!
๋ฐ์ดํธ ์ ์ถ๋ ฅ
๋ฌธ์ ์ ์ถ๋ ฅ
Green Project์์ ๊ฐ์ ์ฉ ์ ์๊ธฐ๊ธฐ์์ ์ฌ์ฉ๋๋ ์์ ์ปดํจํฐ ์ธ์ด๋ฅผ ๋์์ธํจ.
- ๊ฐ์ ์ฉ ์ ์๊ธฐ๊ธฐ์ ์ฌ์ฉ๋๋ ์ธ์ด๋ ์๊ณ ๊ฒฌ๊ณ ํด์ผ ํ๋ฉฐ, ์ ๋ขฐํ ์ ์๋ ์ฝ๋๋ฅผ ํ์๋ก ํจ.
- ๋ค๋ฅธ CPU๊ฐ ์ ํ๋ ์ ์๊ธฐ ๋๋ฌธ์ ํน์ ๋๋ฐ์ด์ค์ ์ข ์๋์ง ์์์ผ ํจ. -> Virtual Machine์์ ๋์ํ๋ ์ค๊ฐ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ด์์ฑ์ด ๋์ ์ธ์ด๋ฅผ ๋์์ธํจ.
C++๊ธฐ๋ฐ์ผ๋ก ๋ง๋ฌ : ์ ์ฐจ์งํฅ + ๊ฐ์ฒด์งํฅ -> Oak : ์๋ฒฝํ ๊ฐ์ฒด์งํฅ ์ธ์ด
๊ฐ์ ์ ํ์์ ์ฃผ๋ชฉ๋ฐ์ง ๋ชปํ๊ณ ์น์ผ๋ก ์์ ์ ๋๋ฆผ World Wide Web์ ๋ฐ์ ๊ณผ Mosaic์ ์ฌ์ฉ์ ์ฃผ๋ชฉ -> ์๋ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ ์น ๋ธ๋ผ์ฐ์ ์ ์ : HotJava๋ธ๋ผ์ฐ์ ๋ก ๋ฐ์ ํจ
HotJava : Applet์ด๋ผ ๋ถ๋ฆฌ๋ ์๋ฐ์ ๊ธฐ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ ์ค๊ฐ์ฝ๋(Bytecode)๋ฅผ ํด์ํ ์ ์๋๋ก ๋ง๋ฆ.
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) ๊ธฐ๋ฅ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ณต
- ์์ค์ฝ๋(.Java)
--์ปดํ์ผ(Compiling javac)-->
- ์ค๊ฐ์ฝ๋(.class):๋ฐ์ดํธ์ฝ๋=ํด๋์คํ์ผ
--๊ธฐ๊ณ์ด๋ก ํด์(Interpreting:java)--> ์คํ.
-> ์๋ฐ๋ ์ปดํ์ผ ์ธ์ด์๊ณผ ๋์์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋ค์ํ ํ๋ซํผ(os)์์์ ์คํ๋๊ธฐ ์ํด ์๋ฌ์ ์์ธ์ด ๋๋ ์์๋ค์ ์ ๊ฑฐํ๊ฑฐ๋ ์๋์ผ๋ก ํด๊ฒฐ
- ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ง ์์.
- ์๋์ผ๋ก ๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collector)๊ธฐ๋ฅ์ ์ํํจ
- ์๊ฒฉํ ๋ฐ์ดํฐ ํ์ ์ ๊ฒ์ฌ๋ฅผ ํตํด ์๋ฌ๋ฅผ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํจ
- ์คํ ์๊ฐ์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํจ.
์ปดํ์ผ ์์ ์๊ฒฉํ๊ฒ ๋ฐ์ดํฐ ํ์ ์ ๊ฒ์ฌํจ์ผ๋ก์จ ํ๋ก๊ทธ๋จ ์คํ ์ ๋ฐ์ํ ์ ์๋ ๋น์ ์์ ์ธ ์ํฉ์ ๋ฏธ๋ฆฌ ๋ฐฉ์ง
-
.java(์์ค์ฝ๋)
-
์ปดํ์ผ๋ฌ(Compile)
-
.class(๋ฐ์ดํธ ์ฝ๋)
-- ์คํ ์--
-
- ํด๋์ค ๋ก๋ : ์ฝ๋ ๋ถ๋ฆฌ : ์์ ์ ์ปดํจํฐ์์ ์จ๊ฒ์ธ์ง, ๋ค๋ฅธ ์ปดํจํฐ์์ ์จ๊ฒ์ธ์ง ๋จผ์ ๋ถ๋ฆฌ
-
- ๋ฐ์ดํธ ์ฝ๋ ๊ฒ์ฆ๊ธฐ : ์ฝ๋ ๊ฒ์ฆ : ๋ฌธ์ ๊ฐ ์์๋ ์ธํฐํ๋ฆฌํฐ๋ก ๋์ด๊ฐ
-
์ธํฐํ๋ฆฌํฐ(Interpreter)
-> ์คํ.
์ฌ์ฉํ๋ ์ด์์ฒด์ ๋ CPU๋ฑ์ ํ๋์จ์ด ์ฌ์์ ๊ด๊ณ ์์ด ์คํ๋ ์ ์์.
-
์๋ฐ ํ๋ก๊ทธ๋จ --์๋ฐ ์์ค์ฝ๋(.java)-->
-
์๋ฐ ์ปดํ์ผ๋ฌ --์๋ฐ ๋ฐ์ดํธ ์ฝ๋(.class)-->
-
์๊ฐ ๊ฐ์๋จธ์ --๊ธฐ๊ณ์ด์ฝ๋-->
-> ํ๋ซํผ ๋ ๋ฆฝ์
- Unix, Win, Mac..
๊ฐ๋น์ง ์ปฌ๋์ (Garbage Collection)๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด ์์ด ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅ
- ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ์ถ์ ๊ด๋ฆฌ
- ๋ ์ด์ ์ฐธ์กฐ๋์ง ์์ผ๋ฉด ์๋์ผ๋ก ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ํด์
์ค๋ ๋ : ๋ ์์ ์ผ๋ก ์ํํ๋ ํ๋์ ์์ ํ๋ก๊ทธ๋จ
๋ฉํฐ์ค๋ ๋ : ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ์ํ๋๋ ๊ณผ์ , ํ๋์ CPU๊ฐ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์์ ์ํํ๋๋ก ํจ -> ์ํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํจ
- ์๋ฐ ์ธ์ด๋ ๋ณํ๋๋ ํ๊ฒฝ์ ์ ์ ์๋๋๋ก ์ค๊ณ๋จ
- ๊ธฐ์กด์ ํ๋ก๊ทธ๋จ์ ์ํฅ์ ์ฃผ์ง ์๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ก์ด ๋ฉ์๋๋ ์์ฑ๋ค์ ์ถ๊ฐํ ์ ์์
- ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฐ๊ฒฐ์ ์คํ์๊ฐ์ ์ํํจ.
ํ๋ซํผ(Platform)์ด๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ์ ์๋ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ํ๊ฒฝ์ ์๋ฏธ
-
์ผ๋ฐ์ ์ธ ํ๋ซํผ : ์ปดํจํฐ ํ๋์จ์ด : ํ๋์จ์ด๋ฅผ ์ ์ดํ๋ ์ด์์ฒด์
-
์๋ฐ ํ๋ซํผ : ์ํํธ์จ์ด๋ง์ผ๋ก ๊ตฌ์ฑ๋จ : JDK(Java Development Kit)๋ก ์ค์น๋จ : JAVA SE, JAVA EE, JAVA ME
-
Java SE(Standard Edition) ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์๋์ ์ผ๋ก์จ, ์๋ฐ ์ธ์ด ๋๋ถ๋ถ์ ํจํค์ง๊ฐ ํฌํจ๋จ.
-
Java EE(Enterprise Edition) ํ์ ์์ ์ฌ์ฉ๋๋ API๋ค์ด ์ง์ฝ๋ ์๋์ ex) ์นํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ JSP,Servlet,JDBC,JNDI,EJB๋ฑ์ ๋ง์ ๊ธฐ์ ๋ค์ด ํฌํจ๋จ.
-
Java ME(Micro Edition) ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ๋ฑ์์ ์ฌ์ฉ๋๋ API๊ฐ ํฌํจ๋ ์๋์ ์ค๋งํธํฐ์ ์์ฒด์ ์ธ OS๋ก ์ธํด ์์ฒด API(์๋๋ก์ด๋ SDK, ios SDF)์ ์ฌ์ฉ -> ํ์ฌ๋ ๊ฑฐ์ ์ฌ์ฅ๋จ.
-
์ ํ๋ฆฌ์ผ์ด์ (Application)
-
์ด์์ฒด์ (OS) : Windows, Unix, Linux, Macintosh ์ดํ๋ฆฌ์ผ์ด์ ์ด ํ๊ณ ์ํ๋ ์ผ์ ํ๋์จ์ด์ ์ ๋ฌ -> ํต์ ์ ๋ด๋น
-
๋ค์ํ ํ๋์จ์ด ํ๋ซํผ : Intel,SPARC,PowerPC
-
์๋ฐ ํ๋ก๊ทธ๋จ JVM์์์ ๋์
-
์๋ฐ ๊ฐ์๋จธ์ (JVM) : ์๋ฐ API(ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
-
๋ค์ํ ํ๋์จ์ ํ๋ซํผ
- ์๋ฐ ํ๋ก๊ทธ๋จ
- ์๋ฐ ์ธ์ด๋ก ์ฐ์ฌ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์ํค๋ ๊ธฐ๋ฅ ์ํ
- ์๋ฐ ๊ฐ์ ๋จธ์
- ์๋ฐ๋ก ์ฐ์ฌ์ง ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํน์ ์ด์์ฒด์ ์ค๊ฐ์ ์กด์ฌํ์ฌ ์๋ก๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด์์ฒด์ ์ ์ํฅ์ ๋ฐ์ง ์๊ณ ๋์ํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต
- OS(win,linux,unix) ๋จ! JVM์ ์ด์์ฒด์ ์ ์ง์ ์ ์ผ๋ก ํต์ ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ์ ๋ง๋ JVM์ ์ค์นํด ์ฃผ์ด์ผ ํจ.
์๋ฐ ํ๋ซํผ์์ ์ ๊ณต
- ํ๋ก๊ทธ๋๋จธ๊ฐ ํ์๋ก ํ๋ ๊ธฐ๋ณธ์ ์ธ ํด๋์ค(Class)๋ค์ ๊ฑฐ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ์ ๊ณตํ๋ ๊ฒ
- ๋ฏธ๋ฆฌ ์ ๊ณต๋๋ ํด๋์ค๋ฅผ ํ์ค ํด๋์ค๋ผ๊ณ ํจ.
- ์๋ฐ ์ธ์ด ์์ฒด๋ ์๊ณ ๋จ์ํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ง, ๋ง์ ๊ธฐ๋ฅ๋ค์ API์์ ์ ๊ณตํ๊ณ ์์
- ์๋ฐ ํจํค์ง : java.applet, java.awt, xjava.io, java.lang, java.net, javax.swing, java.utill
- java.applet : ์ ํ๋ฆฟ ์์ฑ์ ํ์ํ ๊ธฐ๋ฅ์ ๋ชจ์ ๋์ ํจํค์ง
- java.awt : GUI์์ฑ๊ณผ ๊ด๋ จ๋ ํจํค์ง.Javax.swingํจํค์ง์ ํจ๊ป ์๋ฐ GUI์ ํ๋ฆฌ์ผ์ด์ ์์ฑ ์ ํ์์ ์ผ๋ก ์ฌ์ฉํจ. ๋ฒํผ, ํ ์คํธํ๋, ๋ฉ๋ด ๋ฑ ๊ด๋ จ ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ ๊ธฐ๋ฅ์ ์ ๊ณตํจ.
- java.applet : ์๋ฐ ์ ์ถ๋ ฅ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ๋ ํจํค์ง. ํ์ผ์ด๋ ๋ฒํผ ๋ฑ์ ์ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํจ.
- java.lang : ์๋ฐ ์ธ์ด์ ๊ธฐ์ด์ ์ธ ์ฌํญ์ ์ ์ํ ํด๋์ค์ ๊ด๋ จ๋ ํจํค์ง.Objectํด๋์ค, ๋ฌธ์์ด ๊ด๋ จ, ์์คํ ๊ด๋ จ, ๋ฉํฐ์ค๋ ๋ ๊ด๋ จ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ํฌํจํจ.
- java.net : ์๋ฐ์ ๋คํธ์ํฌ ๊ด๋ จ ํจํค์ง. ์ด ํจํค์ง ๋ด์๋ ์์ผ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํจ.
- javax.swing : java.awtํจํค์ง์ ๋๋ถ์ด ์๋ฐ GUI์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ๋ ํจํค์ง.java.awtํฌํจ ๋ด์ฉ๋ณด๋ค ๋ค์ํ๊ณ , ์ตํต์ฑ ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํจ.
- java.util : ์ ํธ๋ฆฌํฐ์ฑ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จ๋ ํจํค์ง. ๋ ์ง ํํ์ด๋ ์ฌ๋ฌ ์๋ฃํ์ ํ๋๋ก ์ทจ๊ธํ๋ ์ปฌ๋ ์ ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํจ.
- ์๋ฐ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํ ์๋ฐ ๊ฐ๋ฐํ๊ฒฝ ์ค์น
- ์ฌ์ฉํ๋ ค๋ ๋ถ์ผ์ ๋ฐ๋ผ ์ธ ๊ฐ์ง ํ๋ซํผ์ผ๋ก ๊ตฌ๋ถ๋จ.
-
์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ(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'์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
- bin : ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ๊ด๋ จ๋ ๊ฐ์ข ๋ช ๋ น๋ค์ ํฌํจํ ํด๋. ์๋ฐ ์ปดํ์ผ๋ฌ์ ์ธํฐํ๋ฆฌํฐ ๋ช ๋ น๋ ์ฌ๊ธฐ์ ํฌํจ๋จ
- include : ํ๋ซํผ ๋ณ๋ก ํ์ํ JDK์ ๊ฐ์ข ํค๋ ํ์ผ๋ค์ ํฌํจํ ํด๋
- jre : ์๋ฐ ์คํ ํ๊ฒฝ ๊ด๋ จ ๋ช ๋ น์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ ํด๋
- lib : ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ ํด๋
binํด๋์์ ์ฃผ์ ์๋ฐ ๋ช ๋ น์ด ๋ณด๊ธฐ
- javac(์๋ฐ์์ค ๋ฐ์ดํธ์ฝ๋๋ก ๋ฒ์ญ), java(์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ํด๋์ค๋ฅผ ํด์ํ์ฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ ์ค), appletviewer(์ผ์ข ์ ์์ ์น ๋ธ๋ผ์ฐ์ ), jdb(๋๋ฒ๊ฑฐ), javadoc(์๋ฐ ์์ค ํ์ผ์ ๋ํ htmlํ์ผ์ ์์ฑํ๊ณ , ์์ค ํ๋ก๊ทธ๋จ์ ํด๋์ค๋ ์ธํฐํ์ด์ค, ์์ฑ์, ๋ฉ์๋, ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ์ ๋ํ htmlํ์ผ์ ์์ฑํจ.), javap(์ปดํ์ผ ํ ์์ฑ๋ ์๋ฐ ํด๋์ค ํ์ผ์ ์ญ์ปดํ์ผํ์ฌ ํด๋์ค ๋ด์ ์ ๋ณด๋ฅผ ์ถ์ ํ ์ ์๋๋กํจ.), jar(๋ค์ ๊ฐ์ ์๋ฐ ํด๋์ค ํ์ผ๋ค์ ํ๋์ .jar๋ผ๋ ํ์ผ๋ก ์์ถํ์ฌ, ๋คํธ์ํฌ๋ฅผ ํตํ ํ๋ก๊ทธ๋จ ์ ์ก ์ ์ ์ก ์๊ฐ์ ์ค์ผ ์ ์์)
- bin ํด๋ ๋ด์ ๋ช ๋ น์ด๋ค์ $bin ํด๋ ์์์๋ง ์ฌ์ฉํ ์ ์์
- ์์คํ ํ๊ฒฝ ๋ณ์์ path๋ณ์์ ๋ช ๋ น์ด๋ค์ด ๋ค์ด ์๋ ํด๋๋ฅผ ์ถ๊ฐํด์ผ ํจ. -> "ํ๊ฒฝ ๋ณ์์ path์ถ๊ฐ" -> ์๋ฐ์ ์ปดํ์ผ, ์ธํฐํ๋ฆฌํธ ๋ฑ์ ํ์ํ ๋ช ๋ น๋ค์ ์ด์์ฒด์ ์ ๋ฑ๋กํจ -> ๋ชจ๋ ๊ฒฝ๋ก์์ ์๋์ผ๋ก ๊ทธ ํ์ผ์ ์ธ์ํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ.
์๋ฐ API Document
- ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ์๋ฐ ํด๋์ค๋ก ๊ตฌํํ์ฌ ์ ๊ณตํ๋ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์๋ฐ ์์ค ํํ๊ฐ ์๋ ๋ฐ์ดํธ ์ฝ๋๋ก ์ ๊ณต -> ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ ํด๋์ค๋ ์ธํฐํ์ด์ค ์ ๋ณด, ๋ฉ์๋, ์์ฑ์, ๋ณ์ ๋ฑ์ด ํ์ํจ.
- HTMLํ์ผ๋ก ๋ฌธ์ํํ์ฌ Oracle ํํ์ด์ง์์ ์ ๊ณตํจ.
์ผ๋ฐ ํ ์คํธ ํธ์ง๊ธฐ๋ค์ ์ค์๊ฐ ๋ฌธ๋ฒ ์ฒดํฌ๋ ๋๋ฒ๊น ๊ธฐ๋ฅ, ์์ค ์๋ ์์ฑ ๊ธฐ๋ฅ ๋ฑ์ด ์ ๊ณต๋์ง ์์ ํด๋์ค๋ช , ๋ฉ์๋๋ช , ๋ณ์๋ช ๋ฑ์ ๋ชจ๋ ์ธ์์ ์์ฑํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์. -> ์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ดํด๋ฆฝ์ค๊ฐ jdk๋ฅผ ์๋์ ์ผ๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ๋ณ์์ path์ง์ ์ ๊ตณ์ด ํ์ง ์์๋ ๋๋ค.
์๋ฐ์ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ์ปฌ๋ ์ ์ ์ ์ฅ๋ ์์๋ฅผ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ์ 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()๋ฉ์๋์ ์ํด ๋ฐํ๋ ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ฅผ ์ ๋ฌ๋ ๊ฐ์ฒด๋ก ๋์ฒดํจ(์ ํ์ ๊ธฐ๋ฅ)