๐ ์ค๋์ ํ์ต ํค์๋
- ์๋ฐ ์ปดํ์ผ ๊ณผ์
- ์ฃผ์ ์ฒ๋ฆฌ
๐ ์๋ฐ ์ปดํ์ผ ๊ณผ์
- ๊ฐ๋ฐ์๊ฐ ์์ค ์ฝ๋๋ฅผ ์์ฑํ๋ฉด (. java) ํ์ผ์ด ์์ฑ๋๋ค.
- ์๋ฐ ์ปดํ์ผ๋ฌ(javac)๊ฐ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ๋ค. ์๋ฐ ๋ฐ์ดํธ ์ฝ๋ ํ์ผ(. class)์ด ์์ฑ๋๋ค.
- ์์ค ์ฝ๋๋ ์ปดํจํฐ๊ฐ ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ๊ณผ์ ์ด ํ์ํ๋ค.
- ์ปดํ์ผ ๊ณผ์ ์ ํตํด ์ต์ ํ๋ฅผ ์์ผ ์ข ๋ ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์๊ฒ ํด์ฃผ๊ณ , ๋ฌธ๋ฒ ์ค๋ฅ๋ ๊ฒ์ถํด ์ค๋ค.
- ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ JDK(์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๊ฐ ํ์๋ก ์ค์น๋์ด ์์ด์ผ ํ๋ค.
- ์ปดํ์ผ๋ ๋ฐ์ดํธ ์ฝ๋๋ฅผ JVM์ ํด๋์ค๋ก๋(class loader)์๊ฒ ์ ๋ฌํ๋ค.
- ํด๋์ค ๋ก๋๋ (.class)๋ฐ์ดํธ ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ด๋ ์ด๋ฐ๊ธฐ์ด๋ค.
- ํด๋์ค ๋ก๋๊ฐ ๋์ ๋ก๋ฉ(Dynamic Loading)์ ํตํด ํ์ํ ํด๋์ค๋ค์ ๋ก๋ฉ ๋ฐ ๋งํฌํ์ฌ ๋ฐํ์ ๋ฐ์ดํฐ ์์ญ(Runtime Data Area), ์ฆ JVM์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
- ๋ก๋ > ๊ฒ์ฆ > ์ค๋น > ๋ถ์ > ์ด๊ธฐํ(static ํ๋์ ๋ณ์)
- ์คํ์์ง(Execution Engine)์ JVM์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ๋ฐ์ดํธ ์ฝ๋๋ค์ ๋ช ๋ น์ด ๋จ์๋ก ํ๋์ฉ ๊ฐ์ ธ์์ ์คํํ๋ค.
- JVM ์ธํฐํ๋ฆฌํฐ๋ JIT ์ปดํ์ผ๋ฌ๊ฐ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ก ๋ณ๊ฒฝํด ์ค๋ค.
- ์ธํฐํ๋ฆฌํฐ๋ (.class)์ฝ๋ ํด์๊ธฐ์ด๋ค. ์ด์์ฒด์ ๊ฐ ์ฝ์ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํด์ค๋ค.
- JIT์ปดํ์ผ๋ฌ๋ ๋น ๋ฅธ (.class)์ฝ๋ ํด์๊ธฐ์ด๋ค. ์ธํฐํ๋ฆฌํฐ์ ํจ์จ์ ๋์ฌ์ฃผ๋ ์ํฌํฐ ํด์๊ธฐ์ด๋ค.
- JVM(Java Virtual Machine): ์๋ฐ ๊ฐ์ ๋จธ์ . ๋ฐ์ดํธ ์ฝ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ์ฝ์ด์ ํด์ํ๊ณ ์คํํ๊ธฐ ๋๋ฌธ์ ํ๋ํ๋์ ์คํ์ ๋น ๋ฅด๋, ์ ์ฒด์ ์ธ ์คํ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์๋ค.
- JIT(Just-In-Time compilation): JIT๋ JVM์ ์ํ๋ค. JVM ์ธํฐํ๋ฆฌํฐ์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์ ๋ ๋ฐฉ์์ด๋ค. ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ก ์ง์ ์คํํ๋ ๋ฐฉ์์ด๋ค. ํ๋์ฉ ์ธํฐํ๋ฆฌํ ํ์ฌ ์คํํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํธ ์ฝ๋ ์ ์ฒด๊ฐ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ์คํ์๋๋ ์ธํฐํ๋ฆฌํ ๋ฐฉ์๋ณด๋ค ๋น ๋ฅด๋ค.
7. ์ด์์ฒด์ (Operating System)์ ๋๋ฌํ๋ค.
- ์๋ฐ๋ OS์ ์ข ์์ ์ด์ง ์๊ณ , Java ํ์ผ ํ๋๋ง ์์ผ๋ฉด ์๋ฐ๊ฐ ์ค์น๋ ๋ชจ๋ OS์์ ์คํํ ์ ์๋ค.
- ์๋ฐ ๊ฐ๋ฐ์๋ ํน์ OS์ ๋ง์ถ์ด ๊ฐ๋ฐ์ ํ์ง ์์๋ ๋๋ค.
8. ํ๋์จ์ด
๐ ์ฃผ์(comment)์ ์ข ๋ฅ
- ํ ์ค ์ฃผ์
- // ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๊ธฐํธ ์ดํ์ ๋ชจ๋ ํ ์คํธ๋ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- ์ฌ๋ฌ ์ค ์ฃผ์
- /* ๋ก ์์ํ๊ณ */ ๋ก ๋๋๋ค. ์ด ์ฌ์ด์ ๋ชจ๋ ํ ์คํธ๋ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- ์ฃผ์์ ์ฌ๋์ด ์ฝ๊ธฐ ์ํด ์ ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๋ฐ๋ ์ฃผ์์ด ์๋ ๊ณณ์ ๋ฌด์ํ๋ค.
- ํ ๋ฒ์ ์ฃผ์์ฒ๋ฆฌ๋ฅผ ํ๋ ค๋ฉด ์ ํํ ํ, ctrl + / ๋ฅผ ๋๋ฅด๋ฉด ๋๋ค.
public class CommentJava {
/*
์ฃผ์์ ์ข
๋ฅ
*/
public static void main(String[] args) {
System.out.println("hello java1"); //hello java1์ ์ถ๋ ฅํ๋ค. (ํ ์ค ์ฃผ์ - ๋ถ ๋ถ ์ ์ฉ)
//System.out.println("hello java2"); ํ ์ค ์ฃผ์ - ๋ผ์ธ ์ ์ฒด ์ ์ฉ
/* ์ฌ๋ฌ ์ค ์ฃผ์ System.out.println("hello java3"); System.out.println("hello java4");
*/
} }
<์ปดํ์ผ์ ํ๋ฉด ์ฃผ์์ด ๋ค ์ฌ๋ผ์ง๊ณ , ๋์ปดํ์ผ ๋ ๋ด์ญ์๋ ์ฃผ์์ ์๋ค.>