μλ νμΈμ λ°±μλκ°λ°μ νλ―Όμ μ λλ€ ππ»π«§
μ€λλΆν° Java κΈ°μ΄μ λν΄ μ€λͺ νλ €κ³ ν©λλ€ !
π«Άπ» μλ° Java λ?
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° μΈμ΄ (Object Oriented Programming, OOP) μ λλ€.
- μ΄μ체μ μ λ 립μ "Write Once, Run Anywhere"μΈ μΈμ΄λΌκ³ λ ν©λλ€.
μ΄λ¬ν μλ°μ νΉμ§μ λν΄μ μμλ³ΌκΉμ?
π«°π» μλ°μ νΉμ§
1οΈβ£ μ΄μ체μ μ λ 립μ
- μλ° μ΄μ μΈμ΄λ€μ νΉμ OSμ λ°λΌ λ€λ₯΄κ² μμ±ν΄μΌ νλ μΈμ΄λ€μ΄ λλΆλΆ (C, C++)
→ μλ°λ JREμ΄ μ€μΉλ λͺ¨λ μ΄μ체μ μμ μ€νμ΄ κ°λ₯νλλ‘ λ§λ€μ΄μ§
* JRE ? JVM(μλ° κ°μλ¨Έμ ) + νμ€ν΄λμ€ λΌμ΄λΈλ¬λ¦¬
2οΈβ£ κ°μ²΄μ§ν₯ μΈμ΄ (Object Oriented Programming, OOP)
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° κ°λ μ μ¬μ©νλ μΈμ΄
→ λͺ¨λ κΈ°λ₯μ κ°μ²΄λ‘ λ§λ€μ΄ μ¬μ©
- OOP ? κ°μ²΄λ νλ‘κ·Έλ¨μ΄ λμνλ λΆνμΌλ‘ μ¬λ¬ λΆν(κ°μ²΄)λ€μ λ§λ€κ³ 쑰립νμ¬ νλμ νλ‘κ·Έλ¨μ μ€ννλ κ°λ
- κ°μ²΄ μ§ν₯μ μΌλ‘ μ€κ³λ νλ‘κ·Έλ¨μ μ μ§λ³΄μκ° μ½κ³ νμ₯μ±μ΄ λμ
3οΈβ£ ν¨μν νλ‘κ·Έλλ° μ§μ
- μλ° 8λ²μ λΆν° ν¨μν νλ‘κ·Έλ¨μ μ§μνλ λ¬Έλ²μΈ λλ€μκ³Ό μ€νΈλ¦Όμ΄ μΆκ°λ¨
→ μ΄λ₯Ό μ¬μ©νλ©΄ 컬λ μ μ μμλ₯Ό νν°λ§, λ§€ν, μ§κ³ μ²λ¦¬νκΈ° μ¬μμ§κ³ μ½λκ° κ°κ²°ν΄μ§λ€λ μ₯μ μ΄ μμ
4οΈβ£ μλ λ©λͺ¨λ¦¬ κ΄λ¦¬ (Garbage Collection)
- μλ°λ μ¬μ©νμ§ μλ λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ μ κ±°νλ©° λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄μ£Όλ GCκ° μμ
→ μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ μκ³ λ₯Ό λκ³ ν΅μ¬μ½λμ μ§μ€
μΆκ°μ μΌλ‘ JVMκ³Ό JDK, JREμ λν΄μλ μμλ³΄κ² μ΅λλ€.
π«Άπ» JVMκ³Ό JDK
π«°π» JVM (Java Virtual Machine)
: μλ° νλ‘κ·Έλ¨μ μ€νμν€λ λꡬ
→ JVMμ΄ μκΈ° λλ¬Έμ μλ°κ° μ΄μ체μ μ λ 립μ
- μλ° μΈμ΄λ₯Ό JVMμ΄ μ΄ν΄ν μ μλ μ½λλ‘ λ³ννλ κ²
- JVMμ λ°μ΄νΈμ½λλ₯Ό μ΄μ체μ μ λ§λ κΈ°κ³μ΄λ‘ λ³νν΄μ€
- JVMλ JDKλ JREλ₯Ό μ€μΉνλ©΄ μλμΌλ‘ μ€μΉλ¨
π νλ‘κ·Έλ¨μ΄ μ λλ‘ μ€νλκΈ° μν΄μ ?
- μ»΄ν¨ν°μ λ€μν μμμ νμ©ν΄μΌ ν¨ → μ΄λ° μμμ κ΄λ¦¬νλ κ² ? μ΄μ체μ
→ μλ‘ λ€λ₯Έ μ΄μ체μ (Linux, Windows, MacOS λ±)μμ νλ‘κ·Έλ¨ μ€ννκΈ° μν΄μλ λ³λμ μ μ°¨ νμ
But, JVMμ μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°ν΄μ€ μ μμ
π«°π» JRE (Java Runtime Environment)
JVM + νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬
- μλ° νλ‘κ·Έλ¨μ μ€νλ§ ν κ²μ΄λΌλ©΄ JREλ§ μ€νν΄λ μκ΄μ΄ μμ
→ But, μλ° νλ‘κ·Έλ¨μ κ°λ°ν κ²μ΄κΈ° λλ¬Έμ JDKλ₯Ό μ€μΉν΄μΌ ν¨
π«°π» JDK (Java Development Kit)
JRE + κ°λ°μ νμν λꡬ
- μλ° νλ‘κ·Έλ¨ μ€ν λ° κ°λ° κ°λ₯ λꡬ
1οΈβ£ OracleJDK : μ€λΌν΄ νμ¬μμ κ΄λ¦¬νλ λ²μ
2οΈβ£ OpenJDK : μ€νμμ€
Java κΈ°λ³Έ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
λ€μ μ½λλ₯Ό λ³΄κ³ ν΄λμ€, λ©μλ, μ κ·Όμ μ΄μ, static, void λ±μ λν΄μλ μλ €λ릴κ²μ !
public class Main{
public static void main(String[] args) {
}
}
π ν΄λμ€ (Class)
- ν΄λμ€λ κ°μ²΄λ₯Ό μ°μ΄λΌ μ μλ ν
- μλ°λ κ°μ²΄μ§ν₯ μΈμ΄μ΄κΈ° λλ¬Έμ λͺ¨λ μ½λλ₯Ό ν΄λμ€ λ΄ μμ±ν¨
- κ°μ²΄μ ꡬ쑰λ₯Ό ν΄λμ€ λ΄μ μ½λλ‘ μ μνλ©΄ μ΄νμ ν΄λμ€λ₯Ό νμ©νμ¬ λμΌν ꡬ쑰μ κ°μ²΄λ₯Ό μ½κ² μμ±ν μ μμ
π main λ©μλ
(1) λ©μλμκ·Έλμ² : [μ κ·Ό μ μ΄μ] [리ν΄νμ
] [λ©μλλͺ
] (λ§€κ°λ³μ) {
(2) λ©μλ λ°λ : ~~
}
public static void main(String[] args){
System.out.println("Welcome!");
print("Welcome, jeju");
}
static void print(String input){
System.out.println(input);
}
ππ» μ print() λ©μλλ₯Ό main() λ©μλμμ νΈμΆνλκ° ?
→ μλ° νλ‘κ·Έλ¨μ μ€ννλ©΄ main() λ©μλλ₯Ό κ°μ₯ λ¨Όμ μ°Ύμ main() μμ μλ κ²μ μμ°¨μ μΌλ‘ μ€ν
π μ κ·Ό μ μ΄μ (Access Modifier)
- ν΄λμ€, λ³μ, λ©μλμ μ κ·Ό κΆνμ μ μ
public > protected > default > private
1οΈβ£ public
: λͺ¨λ μ κ·Όμ νμ©
2οΈβ£ protected
: κ°μ ν¨ν€μ§(ν΄λ)μ μλ κ°μ²΄μ μμ κ΄κ³μ κ°μ²΄λ€λ§ νμ©
3οΈβ£ default
: κ°μ ν¨ν€μ§(ν΄λ)μ μλ κ°μ²΄λ€λ§ νμ©
4οΈβ£ private
: κ°μ ν΄λμ€ λ΄μμλ§ νμ©
π static
- λ³μλ λ©μλκ° κ°μ²΄μ κ²μ΄ μλλΌ ν΄λμ€μ μν κ²μμ μ§μ νλ ν€μλ
- ν΄λμ€λ₯Ό μ€κ³ν λ, λ©€λ²λ³μ μ€ λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μ μΌλ‘ μ¬μ©ν΄μΌ νλ κ²μ static μ λΆμ
- staticμ΄ λΆμ λ©€λ² λ³μλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμλ μ¬μ©ν μ μμ
π returnκ³Ό void
- μλ°μ λ©μλλ 리ν΄ν κ°μ νμ μ λͺ μν΄μ£Όμ΄μΌ ν¨
- λ°μ΄ν°λ₯Ό 리ν΄νμ§ μμ κ²½μ° void !
'Study > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] λ¬Έμμ΄ (0) | 2022.05.04 |
---|---|
[Java] Java κΈ°μ΄ (2) νμ (0) | 2022.05.04 |
ππ» κΈ°λ³Έ κ°λ μ 리νκΈ° (3) (0) | 2022.04.07 |
ππ» κΈ°λ³Έ κ°λ μ 리νκΈ° (2) (0) | 2022.04.07 |
ππ» κΈ°λ³Έ κ°λ μ 리νκΈ° (1) (0) | 2022.04.07 |