μμ±μ
: μΈμ€ν΄μ€κ° μμ±λ λλ§λ€ νΈμΆλλ 'μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ'
- λͺ¨λ ν΄λμ€μ λ°λμ νλ μ΄μμ μμ±μ νμ
- μμ±μμ μ΄λ¦ = ν΄λμ€μ μ΄λ¦
- λ¦¬ν΄ νμ μμ (void μ°μ§ μμ)
1) κΈ°λ³Έ μμ±μ : 맀κ°λ³μκ° μλ μμ±μ
- ν΄λμ€μ μμ±μκ° νλλ μμΌλ©΄ μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μ μΆκ°(μλμμ±)
Card () { }
2) 맀κ°λ³μκ° μλ μμ±μ
Card (String c, String g, iny d) { }
class Data1{ // μ¬μ©μκ° λ°λ‘ μμ±μλ₯Ό λ§λ€μ§ μμ -> μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μ μλμμ±
int value;
}
class Data2{
int value;
Data2(int x){ // μ¬μ©μκ° λ§€κ°λ³μκ° μλ μμ±μλ₯Ό λ§λ€μμ -> κΈ°λ³Έμμ±μλ μμ±λμ§ μμ
value = x;
}
}
public class lecture_ex {
public static void main(String[] args) {
Data1 d1 = new Data1(); // κΈ°λ³Έμμ±μ νΈμΆ
Data2 d2 = new Data2(); // μλ¬!! => κΈ°λ³Έ μμ±μκ° μλμμ±λμ§ μμμ λ κΈ°λ³Έμμ±μλ₯Ό μ΄μ©ν΄ μΈμ€ν΄μ€λ₯Ό λ§λ€μ§ μλλ‘ μ£Όμν΄μΌν¨.π’
}
}
Card c = new Card();
β μ°μ°μ newμ μν΄ λ©λͺ¨λ¦¬(heap)μ Card ν΄λμ€μ κ°μ²΄(μΈμ€ν΄μ€)κ° μμ±λλ€.
β‘ μμ±μ Card()κ° νΈμΆλμ΄ μνλλ€.
β’ μ°μ°μ newμ κ²°κ³Όλ‘ μμ±λ Card μΈμ€ν΄μ€μ μ£Όμκ° λ°νλμ΄ μ°Έμ‘°λ³μ cμ μ μ₯λλ€.
this() μ΄μ©ν νΈμΆ
: κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ μ¬μ©
λ€λ₯Έ μμ±μ νΈμΆμ μμ±μμ 첫 λ¬Έμ₯μμλ§ κ°λ₯


>> μμ±μμμ μ°Έμ‘°λ³μλ₯Ό 맀κ°λ³μλ‘ λ°μμ μΈμ€ν΄μ€λ³μλ€μ κ°μ 볡μ¬
>> λκ°μ μμ±κ°μ κ°λ λ 립μ μΈ μΈμ€ν΄μ€κ° νλ λ λ§λ€μ΄μ§
λ³μ μ’ λ₯
1) ν΄λμ€ λ³μ : κ°μ ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€λ€μ΄ 곡μ νλ λ³μ (static)
- μΈμ€ν΄μ€ μμ±μμ΄ 'ν΄λμ€μ΄λ¦.ν΄λμ€λ³μλͺ 'μΌλ‘ μ κ·Ό
2) μΈμ€ν΄μ€ λ³μ : κ° μΈμ€ν΄μ€μ κ°λ³μ μΈ μ μ₯곡κ°
- μΈμ€ν΄μ€ μμ± ν, 'μ°Έμ‘°λ³μ.μΈμ€ν΄μ€λ³μλͺ 'μΌλ‘ μ κ·Ό
- μΈμ€ν΄μ€λ₯Ό μμ±ν λ μμ±λκ³ , μ°Έμ‘°λ³μκ° μμ λ garbage collectorμ μν΄ μλμ κ±°λ¨
3) μ§μ λ³μ : λ©μλ λ΄μ μ μΈλλ©°, λ©μλμ μ’ λ£μ ν¨κ» μλ©Έ
- 쑰건문, λ°λ³΅λ¬Έμ λΈλ{ } λ΄μ μ μΌλ μ§μλ³μλ λΈλμ λ²μ΄λλ©΄ μλ©Έ
JVM = Java Virtual Machine, μλ° κ°μ λ¨Έμ

JVMμ λμ λ°©μ
1. μλ°λ‘ κ°λ°λ νλ‘κ·Έλ¨μ μ€ννλ©΄ JVMμ OSλ‘λΆν° λ©λͺ¨λ¦¬λ₯Ό ν λΉνλ€.
2. μλ° μ»΄νμΌλ¬(javac)κ° μλ° μμ€μ½λ(.java)λ₯Ό μλ° λ°μ΄νΈμ½λ(.class)λ‘ μ»΄νμΌνλ€.
3. Class Loaderλ₯Ό ν΅ν΄ JVM Runtime Data Areaλ‘ λ‘λ©νλ€.
4. Runtime Data Areaμ λ‘λ© λ .classλ€μ Execution Engineμ ν΅ν΄ ν΄μνλ€.
5. ν΄μλ λ°μ΄νΈ μ½λλ Runtime Data Areaμ κ° μμμ λ°°μΉλμ΄ μννλ©° μ΄ κ³Όμ μμ Execution Engineμ μν΄ GCμ μλκ³Ό μ€λ λ λκΈ°νκ° μ΄λ£¨μ΄μ§λ€.
JVM λ©λͺ¨λ¦¬ ꡬ쑰
- Method Area : ν΄λμ€ μ 보μ ν΄λμ€ λ³μ μ μ₯
- Call Stack : λ©μλκ° νΈμΆμλ§λ€ λ©μλ μνμ νμν λ©λͺ¨λ¦¬κ³΅κ°μ ν λΉ.
κ·Έλ¦¬κ³ λ©μλ μμμ μ¬μ©λλ κ°λ€μ μ μ₯νκ³ , νΈμΆλ λ©μλμ 맀κ°λ³μ, μ§μλ³μ, λ¦¬ν΄ κ° λ° μ°μ° μ μΌμ΄λλ κ°λ€μ μμλ‘ μ μ₯. λ©μλ μνμ΄ λλλ©΄ νλ μλ³λ‘ μμ , λ©λͺ¨λ¦¬ λ°ν.
- Heap : μΈμ€ν΄μ€κ° μμ±λλ 곡κ°. newμ°μ°μμ μν΄ μμ±λλ λ°°μ΄κ³Ό κ°μ²΄κ° λͺ¨λ μ¬κΈ°μ μμ±λ¨.
λ©μλ μμμ λ‘λλ ν΄λμ€λ§ μμ±μ΄ κ°λ₯νκ³ Garbage Collectorκ° μ°Έμ‘°λμ§ μλ λ©λͺ¨λ¦¬λ₯Ό νμΈνκ³ μ κ±°νλ μμ
λ³μμ μ΄κΈ°ν
- λ©€λ²λ³μ(μΈμ€ν΄μ€λ³μ, ν΄λμ€λ³μ)μ λ°°μ΄μ κ° νμ μ κΈ°λ³Έκ°μΌλ‘ μλμ΄κΈ°νλλ―λ‘ μ΄κΈ°ν μλ΅ κ°λ₯
- μ§μλ³μλ μλμ΄κΈ°ν μλλ―λ‘ μ¬μ©μ μ λ°λμ μ΄κΈ°ν νμ

> λ©€λ²λ³μμ μ΄κΈ°ν
β λͺ μμ μ΄κΈ°ν

β‘ μμ±μ μ¬μ©

β’ μ΄κΈ°ν λΈλ
- μΈμ€ν΄μ€ μ΄κΈ°ν λΈλ: { }
- μμ±μμμ 곡ν΅μ μΌλ‘ μνλλ μμ μ μ¬μ©
- μΈμ€ν΄μ€κ° μμ±λ λλ§λ€ (μμ±μλ³΄λ€ λ¨Όμ ) μ€νλ¨
- ν΄λμ€ μ΄κΈ°ν λΈλ: static { }
- ν΄λμ€λ³μμ 볡μ‘ν μ΄κΈ°νμ μ¬μ©λλ©° ν΄λμ€κ° λ‘λ©λ λ μ€νλ¨
λ©μλ μ’ λ₯
1) μΈμ€ν΄μ€ λ©μλ
- μΈμ€ν΄μ€ μμ± ν, 'μ°Έμ‘°λ³μ.λ©μλμ΄λ¦()'μΌλ‘ νΈμΆ
- μΈμ€ν΄μ€λ³μλ μΈμ€ν΄μ€λ©μλμ κ΄λ ¨λ μμ μ νλ λ©μλ
2) ν΄λμ€ λ©μλ (static λ©μλ)
- κ°μ²΄ μμ±μμ΄ 'ν΄λμ€μ΄λ¦.λ©μλμ΄λ¦()'μΌλ‘ νΈμΆ
- λ©μλ λ΄μμ μΈμ€ν΄μ€λ³μ μ¬μ©λΆκ°
- this μ¬μ© λΆκ°
- static λ©μλμμ μΈμ€ν΄μ€ λ³μ, μΈμ€ν΄μ€ λ©μλ μ κ·Ό λΆκ° (static λ©€λ²λ§ μ κ·Ό κ°λ₯)
- μΈμ€ν΄μ€ λ©μλμμ static λ³μ, static λ©μλ μ κ·Ό κ°λ₯
λ©μλ μ€λ²λ‘λ© : νλμ ν΄λμ€μ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬κ° μ μνλ κ²
- 맀κ°λ³μμ κ°μ or νμ μ΄ λ¬λΌμΌ νλ€.
- 리ν΄νμ μ κ΄κ³μλ€.
'κ³΅λΆ κΈ°λ‘ > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μμΈμ²λ¦¬ (0) | 2023.11.28 |
---|---|
week3_4 κ³Όμ (0) | 2023.09.30 |
230925 JAVA (0) | 2023.09.25 |
μκ°ν week3 ν΄λμ€μ κ°μ²΄ (0) | 2023.09.24 |
230923 JAVA (0) | 2023.09.24 |