[Java] Prologue
π λ€μ΄κ°λ©°
μ§§μλ C μΈμ΄ ν¬μ€ν μ λ§μΉκ³ , μ΄μ Javaλ₯Ό μμνλ€. μ¬μ΄ κΈΈμ μλκ² μ§λ§ κ·Έλ§νΌ μ»μ΄κ° κ² λ§μ κ±°λΌ λ―Ώλλ€. μ΄λ² κΈμμλ Javaκ° μ΄λ€ μΈμ΄μΈμ§, κ·Έλ¦¬κ³ JVMΒ·JREΒ·JDKμ ꡬμ±κ³Ό κΈ°λ³Έ νλ‘μ νΈ κ΅¬μ‘°λ₯Ό μ 리νλ€.
1. Javaλ?
μ¬ λ§μ΄ν¬λ‘μμ€ν μ¦(Sun Microsystems)μμ 1995λ μ κ°λ°ν κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄λ‘, μ°½μμλ μ μμ€ κ³ μ¬λ§(James Gosling)μ΄λ€.
| νλͺ© | λ΄μ© |
|---|---|
| κ°λ° | μ¬ λ§μ΄ν¬λ‘μμ€ν μ¦, 1995λ |
| μ°½μμ | μ μμ€ κ³ μ¬λ§ |
| μ μκΆ | 2010λ μ€λΌν΄μ΄ μ¬μ μΈμνλ©° μμ |
| λΌμ΄μ μ€ | OpenJDK(GPL2) / Oracle JDK(μμ μ©, 2019.1~ μ λ£ν κ°ν) |
| μ±ν₯ | C#κ³Ό λ¬Έλ²μ μΌλ‘ μ μ¬ |
C++κ³Όμ μ°¨μ΄ β C++μ κΈ°μ‘΄ Cμ κ°μ²΄μ§ν₯μ μΉλ€ 보λ μ μμ€Β·κ³ μμ€ κ°λ μ΄ μΆ©λνλ λΆλΆμ΄ λ§μλ€. λ°λ©΄ Javaλ μ²μλΆν° κ°μ²΄μ§ν₯ μΈμ΄λ‘ μ€κ³λμλ€. λ€λ§ μμ νμ (primitive)μ κ°μ²΄λ‘ μ·¨κΈνμ§ μμ, λͺ¨λ κ²μ κ°μ²΄λ‘ 보λ μμ κ°μ²΄μ§ν₯ μΈμ΄(Python, Ruby)μλ μ‘°κΈ λ€λ₯΄λ€.
2. Javaμ ν΅μ¬ νΉμ§ β νλ«νΌ λ 립μ±
Javaμ κ°μ₯ ν° νΉμ§μ νλ«νΌμ λ 립μ μ΄λΌλ μ μ΄λ€.
1
2
3
4
[C/C++] μμ€μ½λ ββμ»΄νμΌβββΊ κΈ°κ³μ΄(νλ«νΌ μ’
μ)
[Java] μμ€μ½λ ββμ»΄νμΌβββΊ λ°μ΄νΈμ½λ(.class) ββJVMβββΊ κΈ°κ³μ΄
β μ΄λ OSμμλ λμΌν .class
C/C++ μ»΄νμΌλ¬λ μμ€λ₯Ό κ³§λ°λ‘ κΈ°κ³μ΄λ‘ μ»΄νμΌΒ·λ§ν¬νμ§λ§, μλ° μ»΄νμΌλ¬λ λ°μ΄νΈμ½λ(.class)λ₯Ό μμ±νλ€. μ΄ λ°μ΄νΈμ½λλ₯Ό μ½μ΄ κ° νλ«νΌμ κΈ°κ³μ΄λ‘ λ°κΏ μ€ννλ κ²μ΄ JVMμ΄λ€. κ·Έλμ βν λ² μμ±νλ©΄ μ΄λμλ μ€ν(Write Once, Run Anywhere)βμ΄ κ°λ₯νλ€.
3. JVM Β· JRE Β· JDK
μλ°λ μΈ κ°μ§ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ§λ€. JDKκ° JREλ₯Ό, JREκ° JVMμ ν¬ν¨νλ ꡬ쑰λ€.
1
2
3
4
5
6
7
8
9
10
11
12
βββββββββββββββββββββββββββββββββββββββββββ
β JDK (Java Development Kit) β
β κ°λ°μ νμν λꡬ(μ»΄νμΌλ¬ λ±) ν¬ν¨ β
β ββββββββββββββββββββββββββββββββββββββ β
β β JRE (Java Runtime Environment) β β
β β μ€νμ νμν λΌμ΄λΈλ¬λ¦¬Β·νμΌλ€ β β
β β ββββββββββββββββββββββββββββββββ β β
β β β JVM (Java Virtual Machine) β β β
β β β Java νλ‘κ·Έλ¨μ μ€ν β β β
β β ββββββββββββββββββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββ
| κ΅¬μ± | μν |
|---|---|
| JVM | Java νλ‘κ·Έλ¨μ μ€μ λ‘ μ€ν |
| JRE | JVM μ€νμ νμν λΌμ΄λΈλ¬λ¦¬Β·νμΌ λ³΄μ |
| JDK | JRE + κ°λ° λꡬ(μ»΄νμΌλ¬ λ±) 보μ |
π‘ λλ JDK 8μ μ€μΉνκ³ , IDEλ‘ Eclipse Photonμ μ ννλ€. νλμ μ°½μμ μ¬λ¬ νλ‘μ νΈλ₯Ό κ΄λ¦¬ν μ μμ΄ νΈλ¦¬νλ€.
4. μλ°μ κΈ°λ³Έ ꡬ쑰
Java μ½λλ λ€μκ³Ό κ°μ κ³μΈ΅ κ΅¬μ‘°λ‘ μ‘°μ§λλ€.
1
νλ‘μ νΈ ββΊ ν¨ν€μ§ ββΊ ν΄λμ€ ββΊ λ©μλ ββΊ μμ€μ½λ
day01 νλ‘μ νΈμ day01 ν¨ν€μ§λ₯Ό λ§λ€κ³ , PrintTest ν΄λμ€ μμ main λ©μλμ μλ μ½λλ₯Ό λ£μ΄ μ΄λ¦μ μΆλ ₯ν΄ λ³΄μ.
1
System.out.println("μ λν¬");
π‘ μ€ν λ¨μΆν€λ C(Visual Studio)μ λ¬λ¦¬
Ctrl + F11μ΄λ€.
μ½μμ μ λν¬κ° μΆλ ₯λλ€.
π μ 리
1
2
3
4
5
Java κ°μ
ββ μ 체 1995λ
μ¬, μ μμ€ κ³ μ¬λ§, κ°μ²΄μ§ν₯ μΈμ΄
ββ νΉμ§ νλ«νΌ λ
립 (μμ€βλ°μ΄νΈμ½λ(.class)βJVMβκΈ°κ³μ΄)
ββ κ΅¬μ± JDK β JRE β JVM
ββ ꡬ쑰 νλ‘μ νΈ β ν¨ν€μ§ β ν΄λμ€ β λ©μλ β μμ€μ½λ
| κ°λ | ν μ€ μ μ |
|---|---|
| λ°μ΄νΈμ½λ | νλ«νΌ λ
립μ μΈ μ€κ° μ½λ(.class) |
| JVM | λ°μ΄νΈμ½λλ₯Ό μ€ννλ κ°μ λ¨Έμ |
| JRE | JVM + μ€ν λΌμ΄λΈλ¬λ¦¬ |
| JDK | JRE + κ°λ° λꡬ |
μμΌλ‘ λ°°μΈ λ΄μ©μ΄ λ§μ§λ§, κ·Έλ§νΌ μ¬λ―Έμμ κ² κ°λ€. Java μ¬μ μ μμν΄λ³΄μ!
Comments powered by Disqus.