๐ Java๋?
์ด๋ค CPU ์์๋ผ๋, ์คํ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
Java์ ํน์ง
๊ฐ์ ๋จธ์ ์ฌ์ฉ
๊ฐ์ฒด๋ฅผ ์ฌ์ฉ ( ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ )
์ฝ๋๋ฅผ ๋ฐ๋ก ๋ฐ๋ก ์คํ๊ฐ๋ฅ - ์ธํฐํ๋ฆฌํฐ
๋ฉ๋ชจ๋ฆฌ ์๋ ๊ด๋ฆฌ - C++์ ์๋จ
์ฐ๋ ๋ ๊ด๋ฆฌ API ์ ๊ณต - ๋ฉํฐ ์ฐ๋ ๋ ๊ตฌํ ์ฌ์
ํ์ํ ํด๋์ค๋ง ๋ก๋ - ๋์ ๋ก๋ฉ
TCP/IP ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์
http, htp ํ๋กํ ์ฝ ์ง์
๐ JVM์ด๋?
Java๋ก ์ฐ์ฌ์ง ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ ๊ฐ์๋จธ์
(Java Virtual Machine)
C์ธ์ด๋ ๊ธฐ๊ณ์ด๋ก ๋ฐ๋ก ์ปดํ์ผ ํ๋ฏ๋ก, CPU๋ง๋ค ๊ฐ๊ฐ์ ์ปดํ์ผ๋ฌ๊ฐ ํ์ํ์ง๋ง,
Java๋ ์ปดํ์ผ๋ฌ๊ฐ Javaํด๋์ค ํ์ผ๋ก ๋ฒ์ญ( ๋ฐ์ดํธ ์ฝ๋ )ํ๊ณ ,
JVM์ excution์ด ํด๋์คํ์ผ์ ๊ธฐ๊ณ์ด๋ก ( ๋ฐ์ด๋๋ฆฌ ์ฝ๋ )๋ก ๋ฒ์ญ ํ๋ค.
( OS ๋ง๋ค ๋ค๋ฅด๊ฒ ๋ฐ๊ฟ์ค )
JVM์ด OS๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ์ ์ฌ์ฉํ๊ณ
๋ค๋ฅธ ์ธ์ด๋ค์ ํจ์(๋ฉ์๋) ํธ์ถ์ ์ํด, ์ธ์ด์ ๋ง๊ฒ Stack์ ๋ง๋ ๋ค.
๐ JRE๋?
์๋ฐ ์คํ ํ๊ฒฝ
Java Runtime Environment
- ์๋ฐ ํ๋ก๊ทธ๋จ ์คํ์ ์ํด, ํด๋์ค ํ์ผ์ ๋ก๋ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์์คํ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ
๐ JDK๋?
์๋ฐ ๊ฐ๋ฐ ํคํธ
Java Development Kit
- ์๋ฐ ํ๊ฒฝ์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ๋๊ตฌ(Tool)๋ค์ ๋ชจ์ ๋์ ํจํค์ง
JVM > JRE > JDK
๐ ํน์ง
Java ํ๋ก๊ทธ๋จ์ ํ๋ ์ด์์ ํด๋์ค๋ก ๊ตฌ์ฑ๋๋ค.
ํด๋์ค๋ ํ๋(์์ฑ)์ ๋ฉ์๋(๊ธฐ๋ฅ)๋ก ๊ตฌ์ฑ๋๋ค.
Java์์, ํด๋์ค์ ๊ฐ์ฒด๋ ๊ฐ์๋ง
class {
field
method
}
main() ๋ฉ์๋
- ๋งจ์ฒ์ ์คํ๋๋ ์๋ฐ ํ๋ก๊ทธ๋จ
- main() ๋ฉ์๋๋ฅผ ์ง๋๋ ํด๋์ค๊ฐ ์์ผ๋ฉด, ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ค.
class Hello {
public static void main(String[] args)
{
System.out.println("์๋
ํ์ธ์!");
}
}
Window๋ ks94๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค.
3๋ฐ์ดํธ ์ฒด๊ณ๋ฏ๋ก ์ดํดํ์ง ๋ชปํ๋ค.
utf-8 ์์ ์๋ ค์ฃผ์ด์ผ ํ๋ค.
javac -encoding utf-8 Hello.java
๐ java ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
์คํ ์์ญ ๋ฉ๋ชจ๋ฆฌ, ์ ์ฅ ์์ญ ๋ฉ๋ชจ๋ฆฌ ( T๋ฉ๋ชจ๋ฆฌ )
๐ java ๊ตฌ๋ ๊ณผ์
jre๊ฐ ํ๋ก๊ทธ๋จ ๋ด๋ถ main() ๋ฉ์๋ ๊ฒ์
main() ๋ฉ์๋ ๊ฐ์ง์, jvm ๋ถํ
jvm์ด ๋ชฉ์ ํ์ผ ๋ฐ์ ์คํ
-----------------------------static-----------------------------
๋ชฉ์ ํ์ผ ์คํํ๊ธฐ ์ํ ๊ธฐ๋ณธ ํจํค์ง ๋ถ๋ฌ์ด ( java.lang )
ํ๋ก๊ทธ๋จ ๋ด๋ถ ๋ชจ๋ ํจํค์ง ๋ถ๋ฌ์ด
ํ๋ก๊ทธ๋จ ๋ด๋ถ ๋ชจ๋ ํด๋์ค ๋ถ๋ฌ์ด
-----------------------------stack-----------------------------
main() ๋ฉ์๋ ์คํํ๊ธฐ ์ํ stack frame ์์ฑ
main() ๋ฉ์๋ ๋ด๋ถ ์ค๊ดํธ๋ฅผ ๋ง๋ ๋ ๋ง๋ค stack frame ์์ฑ
main() ๋ฉ์๋์ ์ธ์ ( args )๋ฅผ ์ ์ฅํ ๊ณต๊ฐ ํ ๋น
int i; => ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ ๋น - ์ด๊ธฐํ ์๋จ
i = 10 => ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ 10 ์ ์ฅ
double d = 20.0; => ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ ๋น, 20.0 ์ ์ฅ
-----------------------------heap-----------------------------
Car c1 = new Car(); => ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ ๋ , ๊ฐ์ฒด ์์ฑ ( heap )
Garbage Collector๊ฐ ์ฌ์ฉํ์ง ์๋ ๊ฐ์ฒด ์ญ์ ( heap )