κ°μ²΄μ§ν₯μΈμ΄ μ£Όμ νΉμ§
- μ½λμ μ¬μ¬μ©μ±μ΄ λλ€.
- μλ‘μ΄ μ½λ μμ± μ κΈ°μ‘΄ μ½λ μ΄μ©
- μ½λμ κ΄λ¦¬κ° μ©μ΄νλ€.
- μ½λ κ°μ κ΄κ³λ₯Ό μ΄μ©ν΄ μ½κ² μ½λ λ³κ²½
- μ λ’°μ± λμ νλ‘κ·Έλλ°μ κ°λ₯νκ² νλ€.
- μ μ΄μ,λ©μλ: λ°μ΄ν° λ³΄νΈ λ° μ¬λ°λ₯Έ κ° μ μ§,
- μ½λμ μ€λ³΅μ κ±°: λΆμΌμΉλ‘ μΈν μ€μλ λ°©μ§ν¨
ν΄λμ€
- μ€κ³λ. κ°μ²΄λ₯Ό μ μν΄ λμ κ²
- κ°μ²΄λ₯Ό μμ±νκΈ° μν ν νλ¦Ώ
κ°μ²΄
- ν΄λμ€μ μΈμ€ν΄μ€, ν΄λμ€λ‘λΆν° μμ±λ κ²
- iv λ¬Άμ. λ©μλλ ν¬ν¨X
- μμ±: λ©€λ²λ³μ, νΉμ± νλ, μν
κΈ°λ₯: λ©μλ, ν¨μ, κΈ°λ₯, νμ
“ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μμ±νλ€”
- ν΄λμ€μ μ μλ μμ±κ³Ό κΈ°λ₯μ κ°μ§ κ°μ²΄μμ±νλ κ²
μ μΈμμΉμ λ°λ₯Έ λ³μ 3κ°μ§
μΈμ€ν΄μ€λ³μ
- κ°μ²΄ μμ±μμλ§ μ¬μ© κ°λ₯ν¨. λ©€λ²λ³μ.
- λ 립μ μΈ μ μ₯곡κ°μ κ°μ Έμ μλ‘ λ€λ₯Έ μ£Όμκ°μ κ°μ§ μ μμ.
- μ°Έμ‘°λ³μ . μΈμ€ν΄μ€λ³μ ννλ‘ μ¬μ©ν¨.
ν΄λμ€λ³μ
- staticλ³μ. κ°μ²΄ μμ± μμ΄λ μ¬μ©κ°λ₯ν¨.
- λͺ¨λ ν΄λμ€κ° 곡μ νλ 곡ν΅λ λ³μ. λ©€λ²λ³μ.
- ν΄λμ€μ΄λ¦ . ν΄λμ€λ³μ ννλ‘ μ¬μ©ν¨.
μ§μλ³μ
- λ©μλ μμ λ΄μμλ§ μ ν¨ν λ³μ.
- μλμ΄κΈ°νX λ°λμ μ΄κΈ°ν ν μ¬μ©ν¨.
- μΈμ€ν΄μ€λ³μλ μΈμ€ν΄μ€κ° μμ±λ λλ§λ€ κ°κΈ° λ€λ₯Έκ° μ μ§ν μ μμ§λ§, ν΄λμ€λ³μλ λͺ¨λ μΈμ€ν΄μ€κ° νλμ μ μ₯곡κ°μ 곡μ νλ―λ‘ νμ 곡ν΅λ κ°.
κ°μ²΄λ°°μ΄
- κ°μ²΄λ₯Ό λ°°μ΄λ‘ λ€λ£¨λ κ²
- νΉμ νμ
μ λ°°μ΄μ μμ±νκ³ , κ°μ²΄λ°°μ΄μ κ° μμμ κ°μ²΄λ₯Ό μ μ₯ν¨. κ°μ²΄λ°°μ΄μ μμ± ν μλμ΄κΈ°ν λμ§ μμΌλ―λ‘ λ°λ³΅λ¬Έ λ±μ μ΄μ©ν΄μ λ°°μ΄ μμ κ°μ²΄λ₯Ό μμ±ν΄μ€μΌ ν¨.
JVM λ©λͺ¨λ¦¬ ꡬ쑰
- λ©μλ μμ Method Area
- νλ‘κ·Έλ¨ μ€ν μ€ μ¬μ©λλ ν΄λμ€μ λν μ 보 μ μ₯
- ν΄λμ€ μ 보μ ν΄λμ€ λ³μκ° μ μ₯λλ κ³³
- GCκ° μΌν¨
- νΈμΆ μ€ν Call Stack
- λ©μλμ μμ 곡κ°
- λ©μλκ° νΈμΆλλ©΄ λ©μλ μνμ νμν λ©λͺ¨λ¦¬ 곡κ°μ ν λΉλ°κ³ λ©μλκ° μ’ λ£λλ©΄ μ¬μ©νλ λ©λͺ¨λ¦¬λ₯Ό λ°ννλ€.
- ν Heap
- μΈμ€ν΄μ€κ° μμ±λλ 곡κ°
- new μ°μ°μμ μν΄μ μμ±λλ λ°°μ΄κ³Ό κ°μ²΄λ λͺ¨λ μ¬κΈ°μ μμ±λ¨
- GCκ° μΌν¨
λ©μλ
λ©μλ
- νΉμ μμ μ μννλ μΌλ ¨μ λ¬Έμ₯λ€μ νλλ‘ λ¬Άμ κ²
- μ¬μ©μ΄μ
- λμ μ¬μ¬μ©μ±
- μ€λ³΅μ½λ μ κ±°
- νλ‘κ·Έλ¨μ ꡬ쑰ν
- λ©μλλ₯Ό μ μνλ€”= μ μΈλΆμμ± + ꡬνλΆμμ±
μ μ΄μ λ°ννμ
λ©μλμ΄λ¦ (맀κ°λ³μ) {
/* λ©μλ νΈμΆ μ μννλ λ¬Έμ₯*/
return 리ν΄κ° ;
}
- 맀κ°λ³μμ λ€λ₯Έ μ΄λ¦
- μ§μλ³μ, μΈμ, μΈμ
- 맀κ°λ³μμ νν: ( )κ΄νΈ μμ νμ + μμλͺ μΉ
- return문
- λ©μλμ λ°ννμ μ΄ voidκ° μλ κ²½μ° κ΅¬νλΆ { }κ΄νΈ μμ return λ°νκ°μ΄ λ°λμ ν¬ν¨λμ΄μΌν¨.
- μ΄ κ°μ νμ μ λ°ννμ κ³Ό μΌμΉνκ±°λ μ μ΄λ μλνλ³νμ΄ κ°λ₯ν΄μΌν¨. λ¨ νλμκ°λ§ λ°ν.
- t/fλ₯Ό λ°ννλ 쑰건문μ κ²½μ° νμ κ²°κ³Όκ°μ΄ λ°νλλλ‘ ν¨.
- 맀κ°λ³μ
- νμ λ§ λ§μΌλ©΄ μ΄λ€ κ°λ 맀κ°λ³μλ₯Ό ν΅ν΄ λμ΄μ¬ μ μκΈ° λλ¬Έμ, κ°λ₯ν λͺ¨λ κ²½μ°μ μμ λλΉν΄μΌν¨.
- 맀κ°λ³μμ μ ν¨μ± κ²μ¬ κΌνκΈ°.
- 맀κ°λ³μμ νμμ±
- μλ μμ΄μΌ νλ κ°μΈλ° μ€λ³΅μ κ±°λ₯Ό μν΄ λΌμ΄λκΈ° λλ¬Έμ μ λ¬ν΄μ€μΌν¨.
- λ°ννμ
- λ°ννμ μ΄ κ°μ²΄μ νμ (μ°Έμ‘°ν)μ΄λ©΄ λ©μλλ‘ν΄λΉ κ°μ²΄λ₯Ό μ°Έμ‘°νμ¬ λ°ν.’
λ©μλμ νΈμΆ
- κ°μ ν΄λμ€ μμμ λ©μλλΌλ¦¬λ μ°Έμ‘°λ³μλ₯Ό μ¬μ©νμ§ μμλ μλ‘ νΈμΆμ΄ κ°λ₯ν¨.
- static λ©μλλ κ°μ ν΄λμ€ λ΄μμ (κ°μ²΄ μμ± ν μ¬μ© κ°λ₯ν) μΈμ€ν΄μ€ λ©μλλ₯Ό νΈμΆν μ μμ.
- κΈ°λ³Έν 맀κ°λ³μ
- λ³μμ κ°μ μ½κΈ°λ§ κ°λ₯.
- 맀κ°λ³μνν: ( int x )
- μ°Έμ‘°ν 맀κ°λ³μ
- λ³μμ κ°μ μ½κ³ , λ³κ²½ κ°λ₯.
- 맀κ°λ³μνν: ( Data a )
μ°Έμ‘°ν λ°ννμ
- λͺ¨λ μ°Έμ‘°ν νμ μ κ°μ ‘κ°μ²΄μ μ£Όμ’μ.
- "λ©μλμ λ°ννμ μ΄ μ°Έμ‘°ν”= λ©μλκ° κ°μ²΄μ μ£Όμλ₯Ό λ°νν¨.
static Data copy (Data d) { Data tmp = new Data( ) ; tmp.x = d.x ; return tmp; //tmpλ κ°μ²΄μ μ£Όμ. νΈμΆκ²°κ³Όλ₯Ό μ μ₯νλ λ³μμ νμ μμ Dataμ μ°Έμ‘°λ³μμ¬μΌν¨. }
ν΄λμ€λ©μλ/μΈμ€ν΄μ€λ©μλ (ivμ¬μ©μ¬λΆ)
- ν΄λμ€λ©μλ(staticλ©μλ)
- κ°μ²΄μμ±μμ΄ ‘ν΄λμ€μ΄λ¦.λ©μλμ΄λ¦( )’μΌλ‘ νΈμΆ
- μΈμ€ν΄μ€λ©€λ²(iv,im)μ κ΄λ ¨μλ μμ μνλ λ©μλ
- λ©μλ λ΄μμ iv μ¬μ©λΆκ°(κ°μ²΄ μμ± μ¬λΆ λͺ¨λ₯΄λ―λ‘)
- μΈμ€ν΄μ€λ©μλ
- μΈμ€ν΄μ€ μμ±ν ‘μ°Έμ‘°λ³μ.λ©μλμ΄λ¦( )’μΌλ‘ νΈμΆ
- μΈμ€ν΄μ€ λ©€λ²(iv,im)μ κ΄λ ¨λ μμ μ νλ λ©μλ
- λ©μλ λ΄μμ iv μ¬μ© κ°λ₯ν¨
(+)
- static λ³μ
- λ©€λ²λ³μ μ€ κ³΅ν΅λ κ°μ μ μ§ν νμκ° μμ λ staticμ λΆμΈλ€.
- μ: μΉ΄λ κ°μ²΄μμ νκ³Ό κΈΈμ΄ κ°κ².
- static λ©μλ
- μΈμ€ν΄μ€λ©€λ²(iv, im)λ₯Ό μ¬μ©νμ§ μμΌλ©΄ staticμ λΆμΈλ€.
- λ°λμ κ·ΈλμΌλ§ νλ 건 μλμ§λ§ νΉλ³ν μ΄μ μλν λΆμ΄κΈ°.
μ¬κ·νΈμΆ
- λ©μλ λ΄λΆμμ λ©μλ μμ μ λ€μ νΈμΆνλ κ²(λ°λ³΅μ΄ λ¨)
- μ¬κ·νΈμΆμ λ°λ³΅λ¬ΈμΌλ‘ λ°κΏ μ μμΌλ©° λ°λ³΅λ³΄λ€ μ±λ₯μ΄ λμ¨
- μ΄ν΄νκΈ° μ½κ³ κ°κ²°ν μ½λλ₯Ό μμ±ν μ μμ.
- μμ: ν©ν 리μΌ, μ κ³±, νΈλ¦¬μ΄ν, ν΄λλͺ©λ‘νμ λ±
κ°λ³μΈμ
- JDK1.5λΆν° μκΉ. 맀κ°λ³μ κ°μλ₯Ό κ³ μ X, λμ μ§μ κ°λ₯
- μμ: public PrintStream printf(String f, Object ... args) { ... }
- 맀κ°λ³μ μ€μμ μ μΌ λ§μ§λ§μ μ μΈνλ©΄ μ’μ.
- ‘νμ ... λ³μλͺ ’μ νμμΌλ‘ μ μΈν κ²
- κ°λ³μΈμλ λ΄λΆμ μΌλ‘ λ°°μ΄μ μ΄μ©νλ κ²μ
μ€λ²λ‘λ©
- ν ν΄λμ€ λ΄μμ κ°μ μ΄λ¦(κ°μ κΈ°λ₯)μ λ©μλλ₯Ό μ¬λ¬ κ° μ μνλ κ².
- νλμ λ©μλ μ΄λ¦μΌλ‘ μ¬λ¬ κΈ°λ₯μ ꡬνν¨.
- νμ쑰건
- β λ©μλ μ΄λ¦μ΄ κ°μμΌν¨
- β‘맀κ°λ³μμ κ°μ or νμ μ΄ λ¬λΌμΌν¨
- β’λ°ννμ μ μν₯μμ
- μμ: println( ), println(int x), println(char a)
μμ±μ
μμ±μ
- μΈμ€ν΄μ€κ° μμ±λ λ νΈμΆλλ μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ’(μΈμ€ν΄μ€κ° μμ±μ μ°μ°μ newμ μν )
- μμ±μμ μ΄λ¦μ ν΄λμ€ μ΄λ¦κ³Ό κ°μ.
- λͺ¨λ ν΄λμ€μλ λ°λμ 1κ° μ΄μμ μμ±μκ° μμ΄μΌν¨. 1κ°λ μμ λ λ§ μ»΄νμΌλ¬κ° κΈ°λ³Έμμ±μλ₯Ό μΆκ°ν΄μ€.
- μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λλ λ°λμ 첫μ€μμ νΈμΆν΄μΌ ν¨.
- μμ±μλ μ€λ²λ‘λ© κ°λ₯ν¨. (κΈ°λ³Έμμ±μ, 맀κ°λ³μκ° μλ μμ±μ)
맀κ°λ³μκ° μλ μμ±μ
- 맀κ°λ³μκ° μλ μμ±μλ₯Ό μ¬μ©νλ©΄ μΈμ€ν΄μ€ μμ±ν λ°λ‘ μνλ κ°μΌλ‘ μ΄κΈ°νν μ μμ
κΈ°λ³Έμμ±μ
- ν΄λμ€μ΄λ¦( ){ } : 맀κ°λ³μ, ꡬνλΆ λΉμ΄μμ.
- μΈμ€ν΄μ€λ³μμ κΈ°λ³Έκ°μΌλ‘ μλμ΄κΈ°νλ¨
μμ±μλ₯Ό μ΄μ©ν μΈμ€ν΄μ€ 볡μ¬
- νμ¬ μ¬μ©νκ³ μλ μΈμ€ν΄μ€μ κ°μ μνλ₯Ό κ°λ μΈμ€ν΄μ€λ₯Ό νλ λ λ§λ€κ³ μ ν λ μμ±μλ₯Ό μ΄μ©ν μ μμ.
- λ μΈμ€ν΄μ€κ° κ°μ μνλ₯Ό κ°μ§ = λ μΈμ€ν΄μ€μ μΈμ€ν΄μ€ λ³μκ° λμΌν κ°μ κ°μ§.
- μμ±μμ 맀κ°λ³μλ‘ μμ μ νμ μ λ€λ₯Έ μΈμ€ν΄μ€μ μ£Όμλ₯Ό λ°μμ μ λ£μ=볡μ νκ² λ€λ λ».
Car ( Car c ) { color = c.color; gearType = c.gearType door = .door }
μΈμ€ν΄μ€ μμ± μ κ³ λ €μ¬ν
- ν΄λμ€: μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν κΉ?
- μμ±μ: μ νν ν΄λμ€μ μ΄λ€ μμ±μλ‘ μΈμ€ν΄μ€ μμ±ν κΉ?
λ³μμ μ΄κΈ°ν
- λ³μλ₯Ό μ μΈνκ³ μ²μμΌλ‘ κ°μ μ μ₯νλ κ².
- λ©€λ²λ³μ: λ³μμ μλ£νμ λ§λ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νκ° μλμ μΌλ‘ μ΄λ£¨μ΄μ§.
- μ§μλ³μ: λ©μλ μμμ μ¬μ©νκΈ° μ μ λ°λμ μ΄κΈ°ν ν΄μΌν¨.
μλμ΄κΈ°νμ κΈ°λ³Έκ°
- boolean : false
- char : \u0000
- byte, short, int : 0
- long : 0L
- float : 0.0f
- double : 0.0 or 0.0d
- μ°Έμ‘°νλ³μ : null
μ΄κΈ°ν 3κ°μ§ λ°©λ²
- μλμ΄κΈ°ν
- ν΄λμ€κ° λ©λͺ¨λ¦¬μ μ¬λΌκ° λ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νλ¨.
- λͺ
μμ μ΄κΈ°ν
- λ³μ μ μΈ μ = μ°μ°μλ‘ κ°μ λμ ν¨.
- μ΄κΈ°νλΈλ
- λΈλ‘μ μ΄μ©ν΄ μ΄κΈ°νν¨. cv, ivλλ€ μ¬μ©νμ§λ§ μ£Όλ‘ cvκ° μ¬μ©ν¨.
- μμ±μ μ΄κΈ°ν
- μμ±μ λ©μλλ₯Ό μ΄μ©ν μ΄κΈ°ν λ°©λ²μ. ivλ§ κ°λ₯ν¨.
'π₯οΈ λ°±μλ > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ch.9] String, StringBuffer, StringBuilder ν΄λμ€ (0) | 2023.11.13 |
---|---|
[ch.9] Object, Objects ν΄λμ€ (0) | 2023.11.13 |
[ch.8] μμΈμ²λ¦¬ (1) | 2023.11.11 |
[ch.7] κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(2) (1) | 2023.11.11 |
[ch.7] κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° (1) | 2023.11.11 |