1. κ°μ
λ©λͺ¨λ¦¬ ꡬ쑰μ μ΄ν΄λ νλ‘κ·Έλλ°κ³Ό μμ€ν κ°λ°μ μμ΄μ κ΅μ₯ν μ€μν©λλ€. νλ‘κ·Έλ¨μ΄ μ€νλλ©΄ μ»΄ν¨ν°μ λ©λͺ¨λ¦¬μ ν΄λΉ νλ‘κ·Έλ¨μ΄ μ¬λΌκ°κ² λκ³ , μ΄λ λ©μλ(Method), μ€ν(Stack), ν(Heap)μ΄λΌλ μΈ κ°μ§ μμμ΄ μ¬μ©λ©λλ€. κ°κ°μ μμμ νλ‘κ·Έλ¨ μ€ν μ€μ λ€μν μν μ μννλ©° μ€μν μν μ νκ³ μμ΅λλ€.
μ΄ κΈμμλ λ©μλ, μ€ν, ν μμμ λν΄μ μ΄ν΄νκΈ° μ½κ² μ€λͺ νκ³ μ ν©λλ€. λ©μλλ νλ‘κ·Έλ¨μ ν¨μ λλ λ©μλ μ μκ° μ μ₯λλ μμμ΄λ©°, μ€νμ ν¨μ νΈμΆκ³Ό κ΄λ ¨λ λ°μ΄ν°λ₯Ό μ μ₯νλ μμμ λλ€. λ§μ§λ§μΌλ‘, νμ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°μ κ°μ²΄κ° μ μ₯λλ 곡κ°μ λλ€.
κ°κ°μ μμμ λν ꡬ쑰μ λμμ λν΄ μμΈν μμλ³΄κ² μ΅λλ€.
λ©λͺ¨λ¦¬ ꡬ쑰μ μ΄ν΄μ νμμ±
νλ‘κ·Έλλ°μ νκ±°λ μμ€ν μ κ°λ°νλ κ³Όμ μμ λ©λͺ¨λ¦¬ ꡬ쑰μ μ΄ν΄λ λ§€μ° μ€μν©λλ€. λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ λλ‘ μ΄ν΄νλ©΄, λ©λͺ¨λ¦¬ μ¬μ©μ ν¨μ¨μ±μ λμΌ μ μκ³ , νλ‘κ·Έλ¨μ μ±λ₯μ κ°μ νκ³ , λ²κ·Έλ₯Ό μλ°©ν μ μμ΅λλ€.
κ°μ₯ λ¨Όμ , λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ΄ν΄νλ κ²μ λ³μμ μ€μ½νμ λν μ΄ν΄λ₯Ό κ°μ Έμ΅λλ€. κ°κ°μ λ©λͺ¨λ¦¬ μμμ νΉμ ν μ€μ½νλ₯Ό κ°μ§κ³ μκ³ , λ³μμ μ ν¨ λ²μμ μλͺ μ£ΌκΈ°λ₯Ό μ μν©λλ€. μ΄λ₯Ό μ΄ν΄νμ§ μκ³ λ³μλ₯Ό μ¬μ©νλ©΄, μμμΉ λͺ»ν κ²°κ³Όλ₯Ό μ΄λνκ±°λ λ©λͺ¨λ¦¬ λμμ κ°μ λ¬Έμ λ₯Ό λ°μμν¬ μ μμ΅λλ€.
λν, λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ΄ν΄νλ©΄ λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ μ λν μ΄ν΄λ κ°λ₯ν΄μ§λλ€. νλ‘κ·Έλ¨μ΄ μ€νλλ©΄ λ©λͺ¨λ¦¬λ μ€νκ³Ό ν μμμ λμ μΌλ‘ ν λΉλ©λλ€. μ¬λ°λ₯Έ λ©λͺ¨λ¦¬ ν λΉ λ° ν΄μ λ₯Ό μννμ§ μμΌλ©΄ λ©λͺ¨λ¦¬ λμκ° λ°μνμ¬ λ©λͺ¨λ¦¬ λΆμ‘± λ¬Έμ λ₯Ό μΌκΈ°ν μ μμ΅λλ€.
λΏλ§ μλλΌ, λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ΄ν΄νλ©΄ λ©λͺ¨λ¦¬ μ¬μ© ν¨ν΄μ λν μ΅μ ν λν κ°λ₯ν©λλ€. λ©λͺ¨λ¦¬ μμ κ°μ λ°μ΄ν° μ΄λ, ν λΉ λ° ν΄μ μμ λ±μ μ΅μ ννμ¬ νλ‘κ·Έλ¨μ μ€ν μλμ ν¨μ¨μ±μ κ°μ ν μ μμ΅λλ€.
κ·Έλ¬λ―λ‘ λ©λͺ¨λ¦¬ ꡬ쑰μ μ΄ν΄λ κ°λ°μμκ² λ§€μ° μ€μν©λλ€. μ¬λ°λ₯΄κ² λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νκ³ μ¬μ©νλ κ²μ μμ μ±, ν¨μ¨μ±κ³Ό μ±λ₯ μΈ‘λ©΄μμ ν° μ₯μ μ κ°μ Έλ€μ€λλ€. λ°λΌμ, λ©λͺ¨λ¦¬ ꡬ쑰μ λν μ΄ν΄λ νλ‘κ·Έλλ° λ° μμ€ν κ°λ°μ μμ΄μ νμμ μΈ μμλΌκ³ ν μ μμ΅λλ€.
2. λ©μλ(Method)
λ©μλ(Method)λ νλ‘κ·Έλ¨μμ ν¨μλ λ©μλ μ μκ° μ μ₯λλ μμμ λλ€. λ©μλ μμμ μ»΄νμΌλ¬ λλ μΈν°ν리ν°κ° μμ€ μ½λλ₯Ό μ»΄νμΌ λλ μ€νν λ μμ±λλ©°, νλ‘κ·Έλ¨μ μ€ν νλ¦μ λ°λΌ λ©μλ μ μκ° μ°¨λ‘λλ‘ μ μ₯λ©λλ€.
λ©μλλ νλ‘κ·Έλ¨μμ μ¬μ©λλ ν¨μλ λ©μλμ μ½λκ° μ μ₯λλ κ³³μΌλ‘, μ€μ λ‘ μ€νλμ§λ μμ΅λλ€. λ©μλλ ν΄λΉ ν¨μ λλ λ©μλμ μ½λμ ν¨κ» λ©μλμ μ΄λ¦, μΈμκ°, λ°νκ°, μ§μ λ³μ λ±μ μ 보λ₯Ό μ μ₯ν©λλ€. μ΄λ¬ν μ 보λ νλ‘κ·Έλ¨μ΄ μ€νλλ©΄μ νμν λ©λͺ¨λ¦¬ 곡κ°μ ν λΉλ°κ² λ©λλ€.
κ°κ°μ λ©μλλ κ³ μ ν λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°μ§λ©°, λ©μλ μμμμ μ°Έμ‘°λμ΄ μ€νλ©λλ€. νλ‘κ·Έλ¨μ΄ ν¨μλ λ©μλλ₯Ό νΈμΆνλ©΄, ν΄λΉ λ©μλμ μ£Όμκ° νΈμΆ μ€ν(Stack)μ μ μ₯λλ©°, νΈμΆ μ€νμ ν΅ν΄ λ©μλμ μ€νκ³Ό κ΄λ ¨λ λ°μ΄ν°κ° κ΄λ¦¬λ©λλ€.
λ©μλ μμμ μ£Όμν μν μ λ€μκ³Ό κ°μ΅λλ€:
- νλ‘κ·Έλ¨μμ μ¬μ©λλ ν¨μ λ° λ©μλμ μ½λλ₯Ό μ μ₯ν©λλ€.
- λ©μλμ μ΄λ¦, μΈμκ°, λ°νκ°, μ§μ λ³μ λ±μ μ 보λ₯Ό μ μ₯ν©λλ€.
- νλ‘κ·Έλ¨μ λ©λͺ¨λ¦¬ 곡κ°μ ν λΉνκ³ κ΄λ¦¬ν©λλ€.
λ©μλλ νλ‘κ·Έλ¨μ μ€ν νλ¦μ μμ΄μ μ€μν μν μ ν©λλ€. μ μ νκ² λ©μλλ₯Ό μ μνκ³ νμ©ν¨μΌλ‘μ¨, μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ νλ‘κ·Έλ¨μ μ μ§λ³΄μμ±μ κ°μ ν μ μμ΅λλ€. λν, λ©μλ μμμ νλ‘κ·Έλ¨μ μ€νμ νμν ν¨μ λ° λ©μλμ μ½λκ° μ μ₯λλ―λ‘, νλ‘κ·Έλ¨μ λ©λͺ¨λ¦¬ μ¬μ©μ ν¨μ¨μ±μ μ 곡ν©λλ€. λ°λΌμ, μ¬λ°λ₯΄κ² λ©μλλ₯Ό νμ©νμ¬ νλ‘κ·Έλ¨μ μ€κ³νκ³ κ°λ°ν¨μΌλ‘μ¨, ν¨μ¨μ μΈ λ©λͺ¨λ¦¬ μ¬μ©κ³Ό μ±λ₯ ν₯μμ μ΄λμ΄λΌ μ μμ΅λλ€.
λ©μλ κ°λ κ³Ό μν
λ©μλ(Method)λ νλ‘κ·Έλλ°μμ ν¨μλ λ©μλμ μ μ, μ½λ, μ€ν νλ¦μ μ μ₯νλ μμμ λλ€. νλ‘κ·Έλ¨μμ ν¨μλ λ©μλλ κΈ°λ₯μ μννλ μ½λ λΈλ‘μΌλ‘, μ¬μ¬μ©μ±κ³Ό λͺ¨λνλ₯Ό μν΄ μ¬μ©λ©λλ€.
λ©μλλ νλ‘κ·Έλ¨μ μ€ν νλ¦μ λ°λΌ νΈμΆλλ©°, νμν κΈ°λ₯μ μνν©λλ€. λ©μλλ λ€μν μ’ λ₯μ μμ μ μνν μ μμΌλ©°, νλΌλ―Έν°(μΈμ)λ₯Ό ν΅ν΄ μΈλΆλ‘λΆν° κ°μ μ λ¬λ°μ μλ μκ³ , λ°νκ°μ μ΄μ©ν΄ κ²°κ³Όλ₯Ό λλ €μ€ μλ μμ΅λλ€.
λ©μλλ νλ‘κ·Έλ¨μ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ λμ΄λλ° λμμ μ£Όλ©°, μ½λμ μ€λ³΅μ λ°©μ§νκ³ μ½λμ μ¬μ¬μ©μ±μ λμΌ μ μμ΅λλ€. λν, κ° λ©μλλ κ°λ³μ μΈ κΈ°λ₯μ μννλ―λ‘ μ½λμ ꡬ쑰νμ λͺ¨λνλ₯Ό κ°λ₯νκ² ν©λλ€.
λ©μλλ μλμ κ°μ μν μ μνν©λλ€:
- μ½λμ μ¬μ¬μ©μ±: λμΌν μ½λλ₯Ό μ¬λ¬λ² μμ±νμ§ μκ³ , λ©μλλ‘ μ μνκ³ νΈμΆνμ¬ μ¬μ¬μ©ν μ μμ΅λλ€.
- λͺ¨λν: νλ‘κ·Έλ¨μ΄ μμ λ Όλ¦¬μ λ¨μλ‘ λλμ΄μ Έ κ° κΈ°λ₯μ μννλ λ©μλλ‘ κ΅¬μ±λ μ μλλ‘ ν©λλ€.
- κ°λ μ±κ³Ό μ μ§λ³΄μμ±: λ©μλλ νΉμ μμ μ λ΄λΉνλ―λ‘ νλ‘κ·Έλ¨μ ꡬ쑰λ₯Ό μ΄ν΄νκΈ° μ½κ³ , λ³κ²½ λ° μ μ§λ³΄μκ° μ©μ΄ν©λλ€.
- μ½λ ꡬ쑰ν: 볡μ‘ν νλ‘κ·Έλ¨μ λ©μλλ‘ κ΅¬λΆνμ¬ κ΅¬μ‘°νν¨μΌλ‘μ¨, κ°λ° λ° λλ²κΉ κ³Όμ μ λ¨μνν μ μμ΅λλ€.
μ¬λ°λ₯Έ λ©μλμ νμ©μ νλ‘κ·Έλ¨μ ν¨μ¨μ μ΄κ³ μ μ°νκ² μ€κ³ν μ μκ² ν΄μ€λλ€. λ©μλλ μ½λμ μ¬μ¬μ©μ±κ³Ό λͺ¨λν, μ μ§λ³΄μμ± κ°μ μ ν° λμμ μ£Όλ©°, νλ‘κ·Έλ¨μ κ°λ μ±κ³Ό ꡬ쑰νμλ κΈ°μ¬ν©λλ€. μ΄μ λ°λΌ λ©μλλ νλ‘κ·Έλλ°μμ ν΅μ¬μ μΈ κ°λ μ€ νλμ΄λ©°, νλ‘κ·Έλλ¨Έλ λ©μλμ κ°λ κ³Ό μν μ μ μ΄ν΄νκ³ νμ©ν νμκ° μμ΅λλ€.
λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ
λ©μλ(Method)λ₯Ό νΈμΆνλ©΄ νλ‘κ·Έλ¨μ ν΄λΉ λ©μλμ μ€ν κ³Όμ μ κ±°μΉκ² λ©λλ€. λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ λ€μκ³Ό κ°μ λ¨κ³λ‘ μ΄λ£¨μ΄μ§λλ€.
λ©μλ νΈμΆ
- νλ‘κ·Έλ¨μ΄ μ§νλλ€κ° νΉμ λ©μλλ₯Ό νΈμΆνλ μ½λλ₯Ό λ§λλ©΄, ν΄λΉ λ©μλμ μ€νμ μμ²ν©λλ€.
- λ©μλ νΈμΆμ λ©μλμ μ΄λ¦κ³Ό ν¨κ» μ λ¬λλ μΈμκ°(νλΌλ―Έν°)μ λ°λΌ νΈμΆλ©λλ€.
- λ©μλ νΈμΆμ νμ¬ μ€νλλ μμΉμΈ νΈμΆ μ€ν(Stack)μ λ©μλμ μ 보(μ£Όμ, μΈμκ° λ±)λ₯Ό μ μ₯ν©λλ€.
λ©μλ μ€ν μ€λΉ
- λ©μλκ° νΈμΆλλ©΄ νΈμΆ μ€νμ ν΄λΉ λ©μλμ μ λ³΄κ° μ μ₯λκ³ , μ€ν νλ¦μ λ©μλ λ΄λΆλ‘ μ΄λν©λλ€.
- λ©μλ μ€ν μ€λΉ λ¨κ³μμλ λ©μλ λ΄λΆμμ μ¬μ©ν μ§μ λ³μμ λ©μλμ μ€νμ νμν λ©λͺ¨λ¦¬ 곡κ°μ΄ ν보λ©λλ€.
λ©μλ μ½λ μ€ν
- λ©μλ λ΄λΆμμλ λ©μλμ μ μλ μ½λκ° μμ°¨μ μΌλ‘ μ€νλ©λλ€.
- λ©μλ λ΄λΆμμλ 쑰건문, λ°λ³΅λ¬Έ, λ³μ μ μΈ λ± λ€μν νλ‘κ·Έλλ° κ΅¬λ¬Έμ μ¬μ©νμ¬ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
λ©μλ λ°ν
- λ©μλκ° μ€νμ λ§μΉλ©΄, ν΄λΉ λ©μλμ κ²°κ³Όλ₯Ό λ°νν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ λ°νκ°μ νΈμΆν λΆλΆμΌλ‘ λλ €μ£Όκ³ , λ°νκ°μ κ°μ§κ³ νλ‘κ·Έλ¨μ μ€νμ κ³μν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ μ€νμ λ§μΉκ³ νΈμΆν λΆλΆμΌλ‘ λμκ°λλ€.
λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ μ΄ν΄νλ κ²μ νλ‘κ·Έλλ°μ ν΅μ¬ μ리 μ€ νλμ λλ€. λ©μλ νΈμΆμ νλ‘κ·Έλ¨μ μ€ν νλ¦μ λ€λ₯Έ μμμΌλ‘ μ΄λμν€λ©°, λ©μλ λ΄μμλ ν΄λΉ λ©μλμ μ½λκ° μ€νλκ³ νμν μμ μ΄ μνλ©λλ€. λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ νλ‘κ·Έλ¨μ΄ μ λλ‘ λμνκ³ μνλ κ²°κ³Όλ₯Ό μ»μ μ μλλ‘ νλλ° μ€μν μν μ ν©λλ€.
λ©μλ μμμ ꡬ쑰μ κ΄λ ¨λ μ©μ΄λ€ (μ: ν΄λμ€, κ°μ²΄ λ±)
λ©μλ μμ(Method Area)μ νλ‘κ·Έλ¨ μ€ν μ€μ λ©μλμ μ μμ μ½λ, μμ, ν΄λμ€ μ 보 λ±μ μ μ₯νλ μμμ λλ€. λ©μλ μμμ JVM(Java Virtual Machine)μ μΌλΆλΆμΌλ‘μ, κ°κ°μ μ€λ λμ λν΄ λ 립μ μ λλ€. λ©μλ μμκ³Ό κ΄λ ¨λ μ€μν μ©μ΄λ€μ μμλ³΄κ² μ΅λλ€.
1. ν΄λμ€(Class)
ν΄λμ€λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ κ°μ²΄λ₯Ό μμ±νκΈ° μν μ€κ³λμ λλ€. ν΄λμ€λ λ©€λ² λ³μμ λ©μλλ‘ κ΅¬μ±λλ©°, κ°μ²΄λ₯Ό μμ±ν λ ν΄λΉ ν΄λμ€μ μ μλ λ©€λ² λ³μμ λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€. ν΄λμ€λ λ©μλ μμμ λ‘λλμ΄ μ μ₯λλ©°, ν λ² λ‘λλ ν΄λμ€λ JVM λ΄μμ 곡μ λλ©° μ¬λ¬ κ°μ κ°μ²΄λ₯Ό μμ±ν μ μμ΅λλ€.
2. κ°μ²΄(Object)
κ°μ²΄λ ν΄λμ€μ μΈμ€ν΄μ€μ λλ€. ν΄λμ€λ₯Ό ν΅ν΄ μ€μ λ‘ λ©λͺ¨λ¦¬μ ν λΉλ κ°μ²΄λ‘, ν΄λΉ ν΄λμ€μ λ©€λ² λ³μμ λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€. κ°μ²΄λ ν(Heap) μμμ μμ±λλ©°, κ°μ²΄κ° μμ±λ λλ§λ€ ν΄λΉ ν΄λμ€μ λ©€λ² λ³μλ κ° κ°μ²΄λ§λ€ λ³λλ‘ ν λΉλ©λλ€.
3. μΈμ€ν΄μ€(Instance)
μΈμ€ν΄μ€λ κ°μ²΄μ λ€λ₯Έ νν λ°©λ²μΌλ‘, νΉμ ν΄λμ€μ ꡬ체μ μΈ μ€μ²΄λ₯Ό λ§ν©λλ€. κ°μ²΄λ ν΄λμ€μ μΈμ€ν΄μ€μ΄κΈ° λλ¬Έμ, μΈμ€ν΄μ€μ κ°μ²΄λ λμΌν μλ―Έλ‘ μ¬μ©λ μ μμ΅λλ€.
4. λ©μλ(Method)
λ©μλλ ν΄λμ€μ κΈ°λ₯μ μννλ μ½λ λΈλ‘μΌλ‘, ν΄λμ€μ μ μΈλ λ©μλλ λ©μλ μμμ μ μ₯λ©λλ€. λ©μλλ μ λ ₯κ°μ λ°μλ€μ¬ μ²λ¦¬νκ³ , κ²°κ³Όκ°μ λ°νν μλ μμ΅λλ€. ν΄λμ€ λ΄μμλ λ©μλλ₯Ό νΈμΆνμ¬ κΈ°λ₯μ μνν μ μμ΅λλ€.
5. μμ(Constant)
μμλ λ³κ²½λμ§ μλ κ°μΌλ‘, νλ‘κ·Έλ¨ μ€ν λμ€μ μμ ν μ μμ΅λλ€. μμλ μ£Όλ‘ νλ‘κ·Έλ¨μμ κ³ μ μ μΈ κ°μ΄λ 리ν°λ΄ κ°μ νννκΈ° μν΄ μ¬μ©λλ©°, λ©μλ μμμ μ μ₯λ©λλ€.
λ©μλ μμμ ν΄λμ€μ κ°μ²΄, λ©μλ λ± νλ‘κ·Έλλ°μμ μ€μν μμλ€μ μ μ₯νλ μμμ λλ€. ν΄λμ€λ κ°μ²΄λ₯Ό μμ±νκΈ° μν μ€κ³λλ‘μ λ©μλ μμμ λ‘λλκ³ , κ°μ²΄λ ν μμμ μμ±λμ΄ λ©€λ² λ³μμ λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€. λ©μλ μμμ νλ‘κ·Έλ¨μ μ€νμ νμν μ€μν ꡬ쑰λ₯Ό μ μ§νκ³ κ΄λ¦¬νλ μν μ ν©λλ€.
3. μ€ν(Stack)
μ€ν(Stack)μ λ©λͺ¨λ¦¬ μμ μ€ νλλ‘, λ©μλ νΈμΆκ³Ό κ΄λ ¨λ μ 보λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°μ λλ€. μ€νμ νμ μ μΆ(LIFO, Last-In-First-Out)μ΄λΌλ μμΉμ λ°λΌ λμν©λλ€. μ€νμλ λ©μλμ νΈμΆ μ λ³΄κ° μ μ₯λλ©°, νλ‘κ·Έλ¨μ΄ λ©μλλ₯Ό νΈμΆν λλ§λ€ ν΄λΉ λ©μλμ μ λ³΄κ° μ€νμ κ°μ₯ μμͺ½μ μμ΄κ² λ©λλ€. μ€νμ μ μ₯λ λ©μλ μ 보λ κ°μ₯ μ΅κ·Όμ νΈμΆλ λ©μλλΆν° μμλλ‘ μ€νλ©λλ€.
μ€νμ λμ μ리
λ©μλ νΈμΆ
- νλ‘κ·Έλ¨μ΄ νΉμ λ©μλλ₯Ό νΈμΆνλ©΄, ν΄λΉ λ©μλμ μ€νμ μμ²ν©λλ€.
- λ©μλ νΈμΆμ μ€νμ λ©μλμ μ 보(μ£Όμ, μΈμκ° λ±)λ₯Ό μ μ₯ν©λλ€.
- νΈμΆν λ©μλμ μ€ν νλ¦μ ν΄λΉ λ©μλ λ΄λΆλ‘ μ΄λν©λλ€.
λ©μλ μ€ν μ€λΉ
- μ€νμ μ μ₯λ λ©μλμ μ 보λ₯Ό κΈ°λ°μΌλ‘ λ©μλ λ΄λΆμμ μ¬μ©ν μ§μ λ³μμ λ©λͺ¨λ¦¬ 곡κ°μ ν보ν©λλ€.
- λ©μλ μ€ν μ€λΉ λ¨κ³μμλ λ©μλ λ΄λΆμμ μ¬μ©ν λ³μλ€μ μ΄κΈ° κ°μ μ€μ ν©λλ€.
λ©μλ μ½λ μ€ν
- λ©μλ λ΄λΆμμλ λ©μλμ μ μλ μ½λκ° μμ°¨μ μΌλ‘ μ€νλ©λλ€.
- λ©μλ λ΄λΆμμλ 쑰건문, λ°λ³΅λ¬Έ, λ³μ μ μΈ λ± λ€μν νλ‘κ·Έλλ° κ΅¬λ¬Έμ μ¬μ©νμ¬ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
λ©μλ λ°ν
- λ©μλκ° μ€νμ λ§μΉλ©΄, ν΄λΉ λ©μλμ κ²°κ³Όλ₯Ό λ°νν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ λ°νκ°μ νΈμΆν λΆλΆμΌλ‘ λλ €μ£Όκ³ , λ°νκ°μ κ°μ§κ³ νλ‘κ·Έλ¨μ μ€νμ κ³μν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ μ€νμ λ§μΉκ³ νΈμΆν λΆλΆμΌλ‘ λμκ°λλ€.
μ€νμ νμ© μμ
μ€νμ λ©μλ νΈμΆκ³Ό κ΄λ ¨λ μ 보λ₯Ό μ μ₯νλ μ©λλ‘ λ리 νμ©λ©λλ€. μλ₯Ό λ€μ΄, A λ©μλμμ B λ©μλλ₯Ό νΈμΆνκ³ , λ€μ B λ©μλμμ C λ©μλλ₯Ό νΈμΆνλ μν©μμλ μ€νμ΄ μ¬μ©λ©λλ€. A λ©μλμ νΈμΆ μ λ³΄κ° μ€νμ μ μ₯λκ³ , B λ©μλμ νΈμΆ μ λ³΄κ° κ·Έ μμ μμ΄λ©°, λ€μ C λ©μλμ νΈμΆ μ λ³΄κ° κ·Έ μμ μμ΄λ λ°©μμΌλ‘ μ€νμ΄ κ΄λ¦¬λ©λλ€. μ΄νμλ C λ©μλμμ μ’ λ£λλ©΄μ μ€νμ κ°μ₯ μμͺ½μ μλ νΈμΆ μ λ³΄κ° λ¨Όμ μ€νλκ³ , μ΄μ΄μ B λ©μλμ A λ©μλμ νΈμΆ μ λ³΄κ° μ€νλ©λλ€.
μ€νμ λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ κ΄λ¦¬νλ©΄μ, νλ‘κ·Έλ¨μ μ€ν νλ¦μ μ μ΄νλ λ° μ€μν μν μ ν©λλ€. μ€νμ μ ννκ² νμ©νλ©΄ λ©μλ μ€ν μμμ κ΄λ ¨λ λ¬Έμ λ₯Ό μ½κ² ν΄κ²°ν μ μμ΅λλ€. μ€νμ νλ‘κ·Έλ¨μ μ€ν νλ¦μ μΆμ νκ³ λ©μλμ μ€νμ κ΄λ¦¬νλ λμμ, λ©λͺ¨λ¦¬μ ν¨μ¨μ μΈ κ΄λ¦¬λ₯Ό μ 곡νλ μ€μν μλ£κ΅¬μ‘°μ λλ€.
μ€νμ κ°λ κ³Ό νΉμ§
μ€νμ κ°λ
μ€ν(Stack)μ λ°μ΄ν°λ₯Ό μ μ₯νλ μλ£κ΅¬μ‘°λ‘, νμ μ μΆ(LIFO, Last-In-First-Out)μ΄λΌλ μμΉμ λ°λΌ λμν©λλ€. μ€νμ λ°μ΄ν°λ₯Ό μ½μ νλ μ°μ°μ "push"λΌκ³ νλ©°, μ€νμμ λ°μ΄ν°λ₯Ό μμ νλ μ°μ°μ "pop"μ΄λΌκ³ ν©λλ€. μ€νμμ λ§μ§λ§μΌλ‘ μ½μ λ λ°μ΄ν°λ₯Ό κ°μ₯ λ¨Όμ μμ νκ² λλ―λ‘, κ°μ₯ μ΅κ·Όμ μ½μ λ λ°μ΄ν°κ° κ°μ₯ λ¨Όμ μμ λλ ꡬ쑰μ λλ€.
μ€νμ νΉμ§
νμ μ μΆ (Last-In-First-Out)
- μ€νμ λ°μ΄ν°λ₯Ό νμ μ μΆμ μμΉμ λ°λΌ κ΄λ¦¬ν©λλ€. κ°μ₯ μ΅κ·Όμ μ½μ λ λ°μ΄ν°κ° κ°μ₯ λ¨Όμ μμ λκΈ° λλ¬Έμ, μ€νμ λ°μ΄ν°λ₯Ό μ½μ ν μμμ λ°λλ‘ λ°μ΄ν°κ° μμ λ©λλ€.
μ νλ μ κ·Ό
- μ€νμ μ νλ μ κ·Ό λ°©μμ μ§λκ³ μμ΅λλ€. κ°μ₯ μμͺ½μ μλ λ°μ΄ν°μλ§ μ κ·Όμ΄ κ°λ₯νλ©°, μ€κ°μ μμΉν λ°μ΄ν°μλ μ§μ μ μΈ μ κ·Όμ΄ λΆκ°λ₯ν©λλ€. λ°λΌμ μ€νμμ λ°μ΄ν°λ₯Ό μμ νκ±°λ μ‘°ννκΈ° μν΄μλ κ°μ₯ μμͺ½μ μλ λ°μ΄ν°λ₯Ό λ¨Όμ μμ νκ±°λ νμΈν΄μΌ ν©λλ€.
ν¬κΈ° μ ν
- μ€νμ μΌμ ν ν¬κΈ°λ‘ μ νλμ΄ μμ΅λλ€. μ€νμ μ μ₯ν μ μλ λ°μ΄ν°μ κ°μμλ νκ³κ° μμΌλ©°, μ€νμ΄ κ°λ μ°¬ μνμμλ λ°μ΄ν°μ μ½μ μ΄ λΆκ°λ₯ν©λλ€.
λ©λͺ¨λ¦¬ κ΄λ¦¬
- μ€νμ λ©λͺ¨λ¦¬μ ν μμμ ν λΉλλ©°, λ°μ΄ν°μ μ½μ κ³Ό μμ λ λ©λͺ¨λ¦¬μ μλ¨μμ μνλ©λλ€. λ°μ΄ν°μ μ½μ μ μ€νμ ν¬κΈ°λ₯Ό νμ₯νμ§ μκ³ λ©λͺ¨λ¦¬μ ν΄λΉ λ°μ΄ν°λ₯Ό μΆκ°νλ λ°©μμΌλ‘ μ΄λ£¨μ΄μ§λλ€.
μ€νμ νμ© μμ
μ€νμ λ§μ λΆμΌμμ νμ©λκ³ μμ΅λλ€. μλ₯Ό λ€μ΄, νλ‘κ·Έλλ°μμ μ¬κ·ν¨μ νΈμΆ, μμμ κ³μ°, λΈλΌμ°μ μ λ€λ‘κ°κΈ° κΈ°λ₯ λ±μμ μ€νμ΄ μ¬μ©λ©λλ€. μ€νμ μ¬μ©νλ©΄ λ°μ΄ν°λ₯Ό μΌμμ μΌλ‘ μ μ₯νκ±°λ νλ‘κ·Έλ¨μ μ€ν νλ¦μ κ΄λ¦¬νλ λ± λ€μν μ©λλ‘ νμ©ν μ μμ΅λλ€.
μ€νμ ν¨μ¨μ μΈ λ°μ΄ν° κ΄λ¦¬μ νλ‘κ·Έλ¨μ μ€ν μ μ΄λ₯Ό μν΄ μ¬μ©λλ μ€μν μλ£κ΅¬μ‘°μ λλ€. νμ μ μΆμ μμΉμ λ°λΌ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ μ€νμ λ€μν μν©μμ μ μ©νκ² νμ©λ μ μμΌλ©°, λ©λͺ¨λ¦¬μ μ νλ μμμμ ν¨μ¨μ μΈ λ°μ΄ν° μ μ₯κ³Ό μ κ·Όμ κ°λ₯νκ² ν©λλ€.
μ€ν μμμ λμ λ°©μ
μ€ν(Stack) μμμ λ©λͺ¨λ¦¬μ ν μμμΌλ‘, λ©μλ νΈμΆκ³Ό κ΄λ ¨λ μ 보λ₯Ό μ μ₯νλ λ° μ¬μ©λ©λλ€. μ€ν μμμ νμ μ μΆ(LIFO, Last-In-First-Out)μ μμΉμ λ°λΌ λμνλ©°, λ©μλμ νΈμΆκ³Ό μ€ν νλ¦μ κ΄λ¦¬νλ μ©λλ‘ νμ©λ©λλ€.
μ€ν μμμ λμ μ리
λ©μλ νΈμΆ
- νλ‘κ·Έλ¨μ΄ νΉμ λ©μλλ₯Ό νΈμΆνλ©΄, ν΄λΉ λ©μλμ μ€νμ μμ²ν©λλ€.
- λ©μλ νΈμΆμ μ€ν μμμ λ©μλμ μ 보(μ£Όμ, μΈμκ° λ±)λ₯Ό μ μ₯ν©λλ€.
- νΈμΆν λ©μλμ μ€ν νλ¦μ ν΄λΉ λ©μλ λ΄λΆλ‘ μ΄λνκ² λ©λλ€.
λ©μλ μ€ν μ€λΉ
- μ€ν μμμ μ μ₯λ λ©μλμ μ 보λ₯Ό κΈ°λ°μΌλ‘ λ©μλ λ΄λΆμμ μ¬μ©ν μ§μ λ³μμ λ©λͺ¨λ¦¬ 곡κ°μ ν보ν©λλ€.
- λ©μλ μ€ν μ€λΉ λ¨κ³μμλ λ©μλ λ΄λΆμμ μ¬μ©ν λ³μλ€μ μ΄κΈ° κ°μ μ€μ ν©λλ€.
λ©μλ μ½λ μ€ν
- λ©μλ λ΄λΆμμλ λ©μλμ μ μλ μ½λκ° μμ°¨μ μΌλ‘ μ€νλ©λλ€.
- λ©μλ λ΄λΆμμλ 쑰건문, λ°λ³΅λ¬Έ, λ³μ μ μΈ λ± λ€μν νλ‘κ·Έλλ° κ΅¬λ¬Έμ μ¬μ©νμ¬ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
λ©μλ λ°ν
- λ©μλκ° μ€νμ λ§μΉλ©΄, ν΄λΉ λ©μλμ κ²°κ³Όλ₯Ό λ°νν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ λ°νκ°μ νΈμΆν λΆλΆμΌλ‘ λλ €μ£Όκ³ , λ°νκ°μ κ°μ§κ³ νλ‘κ·Έλ¨μ μ€νμ κ³μν©λλ€.
- λ°νκ°μ΄ μλ κ²½μ°, λ©μλλ μ€νμ λ§μΉκ³ νΈμΆν λΆλΆμΌλ‘ λμκ°λλ€.
μ€ν μμμ νμ© μμ
μ€ν μμμ λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ κ΄λ¦¬νλ©΄μ νλ‘κ·Έλ¨μ μ€ν νλ¦μ μ μ΄νλ λ° μ€μν μν μ ν©λλ€. μλ₯Ό λ€μ΄, A λ©μλμμ B λ©μλλ₯Ό νΈμΆνκ³ , λ€μ B λ©μλμμ C λ©μλλ₯Ό νΈμΆνλ μν©μμλ μ€ν μμμ΄ μ¬μ©λ©λλ€. A λ©μλμ νΈμΆ μ λ³΄κ° μ€ν μμμ μ μ₯λκ³ , B λ©μλμ νΈμΆ μ λ³΄κ° κ·Έ μμ μμ΄λ©°, C λ©μλμ νΈμΆ μ λ³΄κ° κ·Έ μμ μμ΄λ λ°©μμΌλ‘ μ€νμ΄ κ΄λ¦¬λ©λλ€. μ΄νμλ C λ©μλμμ μ’ λ£λλ©΄μ μ€νμ κ°μ₯ μμͺ½μ μλ νΈμΆ μ λ³΄κ° λ¨Όμ μ€νλκ³ , μ΄μ΄μ B λ©μλμ A λ©μλμ νΈμΆ μ λ³΄κ° μ€νλ©λλ€.
μ€ν μμμ λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ μΆμ νκ³ , λ©λͺ¨λ¦¬μ ν¨μ¨μ μΈ κ΄λ¦¬λ₯Ό μ 곡νλλ° μ€μν μν μ ν©λλ€. μ€ν μμμ μ ννκ² νμ©νλ©΄ λ©μλ μ€ν μμμ κ΄λ ¨λ λ¬Έμ λ₯Ό μ½κ² ν΄κ²°ν μ μμ΅λλ€. μ€ν μμμ νλ‘κ·Έλ¨μ μ€ν νλ¦μ μΆμ νλ©΄μ λ©μλμ μ€νμ κ΄λ¦¬νλ λμμ, λ³μμ λ©λͺ¨λ¦¬ 곡κ°μ ν¨μ¨μ μΌλ‘ ν보νμ¬ λ©λͺ¨λ¦¬μ κ΄λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μνν©λλ€.
μ€ν νλ μκ³Ό λ³μμ μμ±κ³Ό μλ©Έ
μ€ν(Stack) μμμμλ λ©μλμ νΈμΆκ³Ό μ€ν μ 보λ₯Ό μ μ₯νλ μ€ν νλ μ(Stack Frame)μ΄ μμ±λκ³ , ν΄λΉ νλ μ λ΄μμ λ³μκ° μμ±λκ³ μλ©Έλ©λλ€. μ€ν νλ μμ λ©μλ λ³λ‘ μμ±λλ©°, μ€ν νλ μ λ΄μλ λ©μλμ μ§μ λ³μμ 맀κ°λ³μ λ±μ΄ μ μ₯λ©λλ€.
μ€ν νλ μμ μμ±κ³Ό μλ©Έ
λ©μλ νΈμΆκ³Ό μ€ν νλ μ μμ±
- λ©μλλ₯Ό νΈμΆνλ©΄, ν΄λΉ λ©μλμ μ 보μ 맀κ°λ³μκ° μ€νμ μ μ₯λ©λλ€.
- μ΄λ, μ€ν νλ μμ΄ μμ±λκ³ λ©μλμ μ€νμ μν 곡κ°μ΄ μ€νμ ν λΉλ©λλ€.
- μ€ν νλ μμ λ©μλ λ΄λΆμμ μ¬μ©λλ λ³μμ 맀κ°λ³μλ₯Ό μ μ₯ν 곡κ°μ μ 곡ν©λλ€.
λ³μμ μμ±κ³Ό μ΄κΈ°ν
- μ€ν νλ μ λ΄μμ λ³μλ€μ΄ μμ±λ©λλ€.
- λ³μλ λ©μλ λ΄λΆμμ μ¬μ©λλ μμ λ°μ΄ν°λ₯Ό μ μ₯νλ 곡κ°μ λλ€.
- λ³μλ μ μΈλ λ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νλλ©°, μ΄κΈ°κ°μ΄ μ§μ λ κ²½μ°μλ ν΄λΉ κ°μΌλ‘ μ΄κΈ°νλ©λλ€.
λ©μλ μ€ν
- μ€ν νλ μ λ΄μ λ³μλ€μ λ©μλμ μ€νμ λ°λΌ κ°μ΄ λ³κ²½λ©λλ€.
- λ©μλ λ΄μμ λ³μμ ν λΉλ κ°λ€μ΄ λ³κ²½λκ±°λ μ°μ°μ΄ μνλλ©°, μ΄λ¬ν κ²°κ³Όλ ν΄λΉ μ€ν νλ μμμλ§ μ ν¨ν©λλ€.
μ€ν νλ μμ μλ©Έ
- λ©μλμ μ€νμ΄ μ’ λ£λλ©΄ ν΄λΉ μ€ν νλ μμ μ€νμμ μ κ±°λ©λλ€.
- μ€ν νλ μμ΄ μλ©Έλλ©΄ ν΄λΉ λ©μλμ μ°κ΄λ λ³μλ€λ ν¨κ» μλ©Έλ©λλ€.
λ³μμ μμ±κ³Ό μλ©Έ
λ³μμ μμ±
- λ³μλ μ€ν νλ μ λ΄μμ μμ±λ©λλ€.
- λ³μμ μμ±μ ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μ μλ―Ένλ©°, ν΄λΉ λ³μμ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΅λλ€.
- λ³μλ νμ κ³Ό μ΄λ¦μ κ°μ§λ©°, λ©μλ λ΄μμ μ¬μ©λλ μμ λ°μ΄ν°λ₯Ό μ μ₯νλ μν μ ν©λλ€.
λ³μμ μ΄κΈ°ν
- λ³μλ μ μΈλ λ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νλ©λλ€.
- λ³μμ νμ μ λ°λΌ κΈ°λ³Έκ°μ΄ λ€λ₯΄κ² κ²°μ λ©λλ€.
- μ΄κΈ°ν κ°μ΄ λͺ μλ κ²½μ°, ν΄λΉ κ°μΌλ‘ λ³μκ° μ΄κΈ°νλ©λλ€.
λ³μμ μ¬μ©
- λ³μλ μμ±λ μ€ν νλ μ λ΄μμ μ¬μ©λ©λλ€.
- λ³μλ λ©μλ λ΄μμλ§ μ ν¨νλ©°, λ€λ₯Έ λ©μλμμλ μ κ·Όμ΄ λΆκ°λ₯ν©λλ€.
- λ³μμ κ°μ λ©μλ μ€νμ λ°λΌ λ³κ²½λ μ μμ΅λλ€.
λ³μμ μλ©Έ
- λ³μλ μ€ν νλ μμ΄ μλ©Έλ λ ν¨κ» μλ©Έλ©λλ€.
- λ³μκ° μλ©Έλλ©΄, ν΄λΉ λ³μμ ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μ λ°νλμ΄ λ€λ₯Έ μ©λλ‘ μ¬μ©λ μ μμ΅λλ€.
μ€ν νλ μκ³Ό λ³μμ μμ±κ³Ό μλ©Έμ λ©μλμ νΈμΆκ³Ό μ€ν κ³Όμ μ λ°λΌ λμ μΌλ‘ κ΄λ¦¬λ©λλ€. μ€ν νλ μμ λ©μλλ§λ€ μμ±λλ©°, ν΄λΉ νλ μ λ΄μμ λ³μκ° μμ±λκ³ μ¬μ©λλ κ΅¬μ‘°λ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€. λ³μμ μμ±κ³Ό μλ©Έμ λ©μλμ μ€ν νλ¦μ λ°λΌ λμ μΌλ‘ μ΄λ£¨μ΄μ§λ©°, κ°κ°μ μ€ν νλ μμμλ§ μ ν¨ν λ³μλ₯Ό μ 곡ν©λλ€.
ν(Heap)
ν(Heap) μμμ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνμ¬ μ¬μ©νλ μμμ λλ€. νμ νλ‘κ·Έλ¨ μ€ν μ€μ μ¬μ©μκ° νμμ λ°λΌ λ©λͺ¨λ¦¬λ₯Ό λμ μΌλ‘ ν λΉνκ³ ν΄μ ν μ μλ 곡κ°μ μ 곡ν©λλ€. μΌλ°μ μΌλ‘ ν μμμ λ©λͺ¨λ¦¬ κ΄λ¦¬μ(λ©λͺ¨λ¦¬ ν λΉ λ° ν΄μ λ₯Ό λ΄λΉνλ μμ€ν )μ μν΄ κ΄λ¦¬λ©λλ€.
ν μμμ λμ μ리
λ©λͺ¨λ¦¬ ν λΉ
- νλ‘κ·Έλ¨ μ€ν μ€μ νμν λ©λͺ¨λ¦¬λ₯Ό ν λΉνκΈ° μν΄ μ¬μ©μλ ν μμμ ν λΉμ μμ²ν©λλ€.
- ν μμμ ν κ΄λ¦¬μμ μν΄ κ΄λ¦¬λλ©°, μ¬μ© κ°λ₯ν λ©λͺ¨λ¦¬ 곡κ°μ μ°Ύμ ν λΉν©λλ€.
- ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©μκ° νμν λ§νΌ μ¬μ©ν μ μμ΅λλ€.
λ©λͺ¨λ¦¬ μ¬μ©
- ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©μκ° νμμ λ°λΌ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ 곡κ°μ λλ€.
- ν μμμ λ©λͺ¨λ¦¬μ μΌλ ¨μ λ°μ΄ν° ꡬ쑰λ₯Ό μ μ₯ν μ μλ μ μ°μ±μ μ 곡ν©λλ€.
- μ¬μ©μλ λ°μ΄ν°λ₯Ό νμ μ μ₯νκ³ , νμμ λ°λΌ μ½κ³ μμ νκ±°λ μμ ν μ μμ΅λλ€.
λ©λͺ¨λ¦¬ ν΄μ
- λ μ΄μ νμνμ§ μμ λ©λͺ¨λ¦¬λ ν΄μ λμ΄ λ€λ₯Έ μ©λλ‘ μ¬μ©λ μ μλλ‘ ν΄μΌ ν©λλ€.
- μ¬μ©μλ ν λΉλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νκΈ° μν΄ κ΄λ ¨ λͺ λ Ήμ ν κ΄λ¦¬μμκ² μ λ¬ν©λλ€.
- ν κ΄λ¦¬μλ ν΄μ λ λ©λͺ¨λ¦¬λ₯Ό λ€μ μ¬μ© κ°λ₯ν μνλ‘ λ§λ€μ΄ λ€λ₯Έ μ¬μ©μμκ² ν λΉν μ μμ΅λλ€.
νμ νμ© μμ
ν μμμ μ μ°ν λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ₯Ό μ 곡νμ¬ λ€μν μ©λλ‘ μ¬μ©λ μ μμ΅λλ€. λͺ κ°μ§ νμ νμ© μμλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
λμ λ©λͺ¨λ¦¬ ν λΉ
- ν μμμ νμμ λ°λΌ λ©λͺ¨λ¦¬λ₯Ό λμ μΌλ‘ ν λΉνκΈ° μν΄ μ¬μ©λ©λλ€.
- μλ₯Ό λ€μ΄, λ°°μ΄μ΄λ μ°κ²° 리μ€νΈμ κ°μ λμ λ°μ΄ν° ꡬ쑰λ₯Ό μμ±νλ λ° μ¬μ©λ μ μμ΅λλ€.
κ°μ²΄ μμ±
- κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ κ°μ²΄λ ν μμμ μμ±λ©λλ€.
- κ°μ²΄λ ν΄λμ€μ μΈμ€ν΄μ€λ‘, νμμ λ°λΌ λμ μΌλ‘ μμ±λκ³ ν΄μ λ©λλ€.
λμ λ©λͺ¨λ¦¬ ν΄μ
- ν μμμ ν λΉλ λ©λͺ¨λ¦¬λ νμνμ§ μμ κ²½μ° ν κ΄λ¦¬μλ₯Ό ν΅ν΄ ν΄μ ν μ μμ΅λλ€.
- λμ μΌλ‘ ν λΉλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ ν¨μΌλ‘μ¨ λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νκ³ , λ€λ₯Έ μ©λλ‘ λ©λͺ¨λ¦¬λ₯Ό μ¬νμ©ν μ μμ΅λλ€.
ν μμμ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μ μ°νκ² μ 곡νμ¬ νλ‘κ·Έλ¨μ΄ λμ λ°μ΄ν° ꡬ쑰λ₯Ό λ§λ€κ³ κ΄λ¦¬νλ λ° λμμ μ€λλ€. μ£Όμν μ μ ν μμμ μ¬μ©μμκ² λ©λͺ¨λ¦¬ κ΄λ¦¬ μ± μμ λΆμ¬νλ―λ‘, λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ₯Ό μ μ νκ² μ²λ¦¬ν΄μΌ λ©λͺ¨λ¦¬ λμμ κ°μ λ¬Έμ λ₯Ό λ°©μ§ν μ μμ΅λλ€.
νμ κ°λ κ³Ό νΉμ§
νμ κ°λ
- ν(Heap)μ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνμ¬ μ¬μ©νλ μμμ λλ€.
- νμ μ¬μ©μκ° νμμ λ°λΌ λ©λͺ¨λ¦¬λ₯Ό λμ μΌλ‘ ν λΉνκ³ ν΄μ ν μ μλ 곡κ°μ μ 곡ν©λλ€.
- μΌλ°μ μΌλ‘ ν μμμ λ©λͺ¨λ¦¬ κ΄λ¦¬μμ μν΄ κ΄λ¦¬λ©λλ€.
νμ νΉμ§
λμ λ©λͺ¨λ¦¬ ν λΉ
- ν μμμ νλ‘κ·Έλ¨ μ€ν μ€μ νμν λ©λͺ¨λ¦¬λ₯Ό λμ μΌλ‘ ν λΉνκΈ° μν΄ μ¬μ©λ©λλ€.
- ν μμμ μ¬μ© κ°λ₯ν λ©λͺ¨λ¦¬ 곡κ°μ μ°Ύμ ν λΉνκ³ , νμμ λ°λΌ ν¬κΈ°λ₯Ό μ‘°μ ν μ μμ΅λλ€.
μ μ°ν λ©λͺ¨λ¦¬ μ¬μ©
- νμ μ¬μ©μκ° νμλ‘ νλ λ°μ΄ν° ꡬ쑰μ ν¬κΈ°μ λ§κ² λ©λͺ¨λ¦¬λ₯Ό μ¬μ©ν μ μμ΅λλ€.
- νμ μΌλ ¨μ λ°μ΄ν° ꡬ쑰λ₯Ό μ μ₯ν μ μλ 곡κ°μ μ 곡νλ©°, λ°μ΄ν°μ μ½κΈ°, μ°κΈ°, μμ , μμ λ± λ€μν μμ μ μνν μ μμ΅λλ€.
λ©λͺ¨λ¦¬ λμ λ°©μ§
- νμ λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ₯Ό μ¬μ©μκ° λͺ μμ μΌλ‘ κ΄λ¦¬ν΄μΌ ν©λλ€.
- μ¬μ©μλ λ μ΄μ νμνμ§ μμ λ©λͺ¨λ¦¬λ₯Ό ν΄μ ν¨μΌλ‘μ¨ λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§ν©λλ€.
- λ©λͺ¨λ¦¬ λμκ° λ°μνλ©΄ ν λΉλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νμ§ μμ μ¬μ©ν μ μλ λ©λͺ¨λ¦¬κ° μ νλλ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
κ°μ²΄ μμ±
- κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ κ°μ²΄λ ν μμμ μμ±λ©λλ€.
- κ°μ²΄λ ν΄λμ€μ μΈμ€ν΄μ€λ‘, νμμ λ°λΌ λμ μΌλ‘ μμ±λκ³ ν΄μ λ©λλ€.
λ³νμ±κ³Ό λμμ± μ§μ
- μ¬λ¬ μ€λ λκ° λμμ ν μμμ μ κ·Όνμ¬ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ±°λ ν΄μ ν μ μμ΅λλ€.
- ν κ΄λ¦¬μλ λμ μ κ·Όμ΄ λ°μν κ²½μ° μνΈ λ°°μ κΈ°λ²μ μ¬μ©νμ¬ λμμ± λ¬Έμ λ₯Ό λ°©μ§ν©λλ€.
ν μμμ λμ λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ₯Ό μ 곡νμ¬ νλ‘κ·Έλ¨μ΄ μ μ°νκ² λ©λͺ¨λ¦¬λ₯Ό μ¬μ©ν μ μλλ‘ ν©λλ€. κ·Έλ¬λ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μ μ νκ² μ²λ¦¬νμ§ μμΌλ©΄ λ©λͺ¨λ¦¬ λμμ κ°μ λ¬Έμ κ° λ°μν μ μμΌλ―λ‘, ν λΉλ λ©λͺ¨λ¦¬λ νμ μμ΄μ§ λ μ μ νκ² ν΄μ ν΄μΌ ν©λλ€.
ν μμμ λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ κ³Όμ
λ©λͺ¨λ¦¬ ν λΉ κ³Όμ
λ©λͺ¨λ¦¬ μμ²
- μ¬μ©μλ νλ‘κ·Έλ¨ μ€ν μ€μ νμν λ©λͺ¨λ¦¬λ₯Ό ν λΉνκΈ° μν΄ ν μμμ ν λΉμ μμ²ν©λλ€.
- νμν λ©λͺ¨λ¦¬μ ν¬κΈ°λ₯Ό μ§μ νμ¬ ν λΉ μμ²μ μ§νν©λλ€.
ν λΉ μ¬λΆ νμΈ
- ν κ΄λ¦¬μλ ν λΉ μμ²μ λ°μ μ¬μ 곡κ°μ νμΈν©λλ€.
- μ΄μ체μ μ μν΄ ν λΉ κ°λ₯ν λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°μ ν λΉ κ°λ₯ μ¬λΆλ₯Ό νμΈν©λλ€.
λ©λͺ¨λ¦¬ ν λΉ
- ν κ΄λ¦¬μλ μ¬μ 곡κ°μ΄ μμ κ²½μ°, μ¬μ© κ°λ₯ν λ©λͺ¨λ¦¬ μ€μμ μμ²ν ν¬κΈ°μ μΌμΉνλ 곡κ°μ μ°Ύμ ν λΉν©λλ€.
- ν λΉλ λ©λͺ¨λ¦¬λ μ¬μ©μμκ² λ°νλλ©°, μ¬μ©μλ ν λΉλ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ²λ¦¬ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ κ³Όμ
λ©λͺ¨λ¦¬ ν΄μ μμ²
- μ¬μ©μλ λ μ΄μ νμνμ§ μμ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νκΈ° μν΄ ν κ΄λ¦¬μμκ² ν΄μ μμ²μ μ λ¬ν©λλ€.
- ν΄μ μμ²μ ν λΉλ λ©λͺ¨λ¦¬μ μ£Όμλ ν¬κΈ°λ₯Ό ν κ΄λ¦¬μμκ² μλ €μ£Όμ΄μΌ ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ νμΈ
- ν κ΄λ¦¬μλ μ¬μ©μλ‘λΆν° λ°μ λ©λͺ¨λ¦¬μ μ£Όμλ ν¬κΈ°λ₯Ό νμΈνμ¬ ν΄μ κ°λ₯ μ¬λΆλ₯Ό νλ¨ν©λλ€.
- μμ²ν λ©λͺ¨λ¦¬κ° μ μμ μΌλ‘ ν λΉλ κ²μΈμ§ κ²μ¬ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ
- ν κ΄λ¦¬μλ λ©λͺ¨λ¦¬μ ν΄μ κ° κ°λ₯νλ€κ³ νλ¨ν κ²½μ°, ν΄λΉ λ©λͺ¨λ¦¬λ₯Ό ν΄μ ν©λλ€.
- ν΄μ λ λ©λͺ¨λ¦¬λ λ€μ μ¬μ© κ°λ₯ν μνκ° λλ©°, λ€λ₯Έ μ¬μ©μμκ² ν λΉλ μ μκ² λ©λλ€.
λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ κ³Όμ μ ν κ΄λ¦¬μμ μν΄ μνλλ©°, μ¬μ©μλ νμμ λ°λΌ λ©λͺ¨λ¦¬λ₯Ό λμ μΌλ‘ ν λΉνκ³ ν΄μ ν μ μμ΅λλ€. λ©λͺ¨λ¦¬μ ν λΉκ³Ό ν΄μ λ₯Ό μ μ νκ² μ²λ¦¬νμ¬ λ©λͺ¨λ¦¬ λμμ κ°μ λ¬Έμ λ₯Ό λ°©μ§νκ³ , λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν΄μΌ ν©λλ€.
ν μμμμμ λμ ν λΉκ³Ό κ΄λ¦¬
λμ ν λΉ
λμ ν λΉμ νλ‘κ·Έλ¨ μ€ν μ€μ λ©λͺ¨λ¦¬λ₯Ό νμμ λ°λΌ λμ μΌλ‘ ν λΉνλ κ³Όμ μ λλ€.
λ©λͺ¨λ¦¬ μμ²
- μ¬μ©μλ νλ‘κ·Έλ¨ μ€ν μ€μ νμν λ©λͺ¨λ¦¬λ₯Ό ν λΉνκΈ° μν΄ λμ ν λΉμ μμ²ν©λλ€.
- ν λΉν λ©λͺ¨λ¦¬μ ν¬κΈ°λ₯Ό μ§μ νμ¬ μμ²ν©λλ€.
ν λΉ κ°λ₯ μ¬λΆ νμΈ
- μ΄μ체μ λ ν λΉ κ°λ₯ν λ©λͺ¨λ¦¬μ ν¬κΈ°μ μ¬μ© κ°λ₯ μ¬λΆλ₯Ό νμΈν©λλ€.
- ν λΉ μμ²λ ν¬κΈ°μ λ©λͺ¨λ¦¬κ° μ¬μ© κ°λ₯νμ§ μ¬λΆλ₯Ό νλ¨ν©λλ€.
λ©λͺ¨λ¦¬ ν λΉ
- ν κ΄λ¦¬μλ μ¬μ© κ°λ₯ν λ©λͺ¨λ¦¬ μ€μμ μμ²ν ν¬κΈ°μ μΌμΉνλ 곡κ°μ μ°Ύμ ν λΉν©λλ€.
- ν λΉλ λ©λͺ¨λ¦¬λ μ¬μ©μμκ² λ°νλλ©°, μ¬μ©μλ ν΄λΉ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ²λ¦¬ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ
λ©λͺ¨λ¦¬ ν΄μ λ λ μ΄μ νμνμ§ μμ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ κ³Όμ μ λλ€.
λ©λͺ¨λ¦¬ ν΄μ μμ²
- μ¬μ©μλ λ μ΄μ νμνμ§ μμ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νκΈ° μν΄ ν κ΄λ¦¬μμκ² ν΄μ μμ²μ μ λ¬ν©λλ€.
- ν΄μ μμ²μ ν λΉλ λ©λͺ¨λ¦¬μ μ£Όμλ ν¬κΈ°λ₯Ό ν κ΄λ¦¬μμκ² μλ €μ£Όμ΄μΌ ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ νμΈ
- ν κ΄λ¦¬μλ μ¬μ©μλ‘λΆν° λ°μ λ©λͺ¨λ¦¬μ μ£Όμλ ν¬κΈ°λ₯Ό νμΈνμ¬ ν΄μ κ°λ₯ μ¬λΆλ₯Ό νλ¨ν©λλ€.
- μμ²ν λ©λͺ¨λ¦¬κ° μ μμ μΌλ‘ ν λΉλ κ²μΈμ§ κ²μ¬ν©λλ€.
λ©λͺ¨λ¦¬ ν΄μ
- ν κ΄λ¦¬μλ λ©λͺ¨λ¦¬μ ν΄μ κ° κ°λ₯νλ€κ³ νλ¨ν κ²½μ°, ν΄λΉ λ©λͺ¨λ¦¬λ₯Ό ν΄μ ν©λλ€.
- ν΄μ λ λ©λͺ¨λ¦¬λ λ€μ μ¬μ© κ°λ₯ν μνκ° λλ©°, λ€λ₯Έ μ¬μ©μμκ² ν λΉλ μ μκ² λ©λλ€.
μ μ ν λμ ν λΉκ³Ό λ©λͺ¨λ¦¬ ν΄μ λ₯Ό ν΅ν΄ ν μμμμμ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€. λ©λͺ¨λ¦¬ ν΄μ λ₯Ό μμ΄μ λ©λͺ¨λ¦¬ λμκ° λ°μνμ§ μλλ‘ μ£Όμν΄μΌ ν©λλ€.
5. λ©μλ, μ€ν, ν μμμ μνΈ μμ©
λ©μλ μμ (Method Area)
- λ©μλ μμμ ν΄λμ€ μ 보μ μ μ λ³μ(Static Variable)λ₯Ό μ μ₯νλ 곡κ°μ λλ€.
- ν΄λμ€ λ‘λμ μν΄ ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ, ν΄λΉ ν΄λμ€μ λ°μ΄νΈ μ½λ, μμ ν(Constant Pool)κ³Ό κ°μ μ λ³΄κ° λ©μλ μμμ μ μ₯λ©λλ€.
- λͺ¨λ μ€λ λκ° κ³΅μ νλ 곡κ°μ΄κΈ° λλ¬Έμ, λ©μλ μμμ μ μ₯λ μ 보λ μ΄λ€ μ€λ λμμλ μ κ·Όν μ μμ΅λλ€.
μ€ν μμ (Stack Area)
- μ€ν μμμ λ©μλ νΈμΆκ³Ό κ΄λ ¨λ μ 보λ₯Ό μ μ₯νλ 곡κ°μΌλ‘, κ° μ€λ λλ§λ€ λ³λμ μ€νμ΄ μμ±λ©λλ€.
- μ€ν μμμλ μ§μ λ³μ(Primitive values, Object reference)μ λ©μλ νΈμΆ μ μμ±λλ νλ μ(Frame)μ΄ μ μ₯λ©λλ€.
- λ©μλ νΈμΆ μμλ μλ‘μ΄ νλ μμ΄ μ€νμ μμ±λλ©°, λ©μλ μ€νμ΄ μ’ λ£λλ©΄ ν΄λΉ νλ μμ΄ μ€νμμ μ κ±°λ©λλ€.
- μ€νμ νμ μ μΆ(LIFO, Last-In-First-Out) κ΅¬μ‘°λ‘ λμνλ©°, νμ¬ μ€ν μ€μΈ λ©μλμ κ΄λ ¨λ μ 보λ₯Ό μ μ₯νκ³ κ΄λ¦¬ν©λλ€.
ν μμ (Heap Area)
- ν μμμ λμ μΌλ‘ ν λΉλ κ°μ²΄μ λ°°μ΄μ΄ μ μ₯λλ 곡κ°μ λλ€.
- μΌλ°μ μΌλ‘ κ°λΉμ§ 컬λ μ (Garbage Collection)μ μν΄ κ΄λ¦¬λλ©°, μ°Έμ‘°λμ§ μμ κ°μ²΄λ μλμΌλ‘ ν΄μ λ©λλ€.
- μ¬λ¬ μ€λ λκ° λμμ μ κ·Όνμ¬ κ°μ²΄λ₯Ό μμ±νκ³ μ°Έμ‘°ν μ μμ΅λλ€.
- ν μμμ λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ ν κ΄λ¦¬μ(Heap Manager)μ μν΄ μνλ©λλ€.
λ©μλ μμ, μ€ν μμ, ν μμμ κ°μμ μν κ³Ό νΉμ§μ κ°μ§κ³ μμΌλ©°, μνΈ μμ©νμ¬ νλ‘κ·Έλ¨μ μ€νμ μ μ΄ν©λλ€. λ©μλ μμμλ ν΄λμ€ μ 보μ μ μ λ³μκ° μ μ₯λκ³ , μ€ν μμμλ λ©μλ νΈμΆκ³Ό κ΄λ ¨λ μ λ³΄κ° μ μ₯λ©λλ€. ν μμμ λμ μΌλ‘ ν λΉλ κ°μ²΄μ λ°°μ΄μ΄ μ μ₯λλ©°, λ©λͺ¨λ¦¬ ν λΉκ³Ό ν΄μ λ ν κ΄λ¦¬μμ μν΄ κ΄λ¦¬λ©λλ€.
λ©μλ νΈμΆ μ λ©λͺ¨λ¦¬ μμ κ°μ κ΄κ³
λ©μλ νΈμΆ μ λ©λͺ¨λ¦¬ μμ κ°μλ λ€μκ³Ό κ°μ κ΄κ³κ° νμ±λλ©°, νλ‘κ·Έλ¨μ μ€νμ΄ μ μ΄λ©λλ€.
1. λ©μλ νΈμΆ κ³Όμ
νΈμΆμ λ©μλ μμ
- νΈμΆμ λ©μλμ νλ μμ΄ νΈμΆμ μ€ν μμμ μ μ₯λμ΄ μμ΅λλ€.
- νΈμΆμ λ©μλμμ μ¬μ©λλ μ§μ λ³μμ νΈμΆν λ©μλμ νμν μΈμ κ°μ κ°μ§κ³ μμ΅λλ€.
νΈμΆν λ©μλ μμ
- νΈμΆν λ©μλμ μ 보μ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.
- νΈμΆν λ©μλμ μ§μ λ³μμ μΈμ κ°μ΄ ν λΉλ©λλ€.
ν μμ
- νΈμΆν λ©μλμμ μμ±λλ κ°μ²΄λ λ°°μ΄μ΄ ν μμμ μ μ₯λ©λλ€.
- λμ μΌλ‘ ν λΉλ λ©λͺ¨λ¦¬ 곡κ°μΌλ‘, μ¬λ¬ λ©μλμμ μ κ·Όν μ μμ΅λλ€.
2. λ©μλ μ€ν κ³Όμ
νΈμΆν λ©μλμ νλ μ μμ±
- νΈμΆν λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.
- νλ μμλ λ©μλμ μ§μ λ³μμ μΌμμ μΌλ‘ μ¬μ©λλ κ°λ€μ΄ μ μ₯λ©λλ€.
νΈμΆν λ©μλμ μ€ν
- νΈμΆν λ©μλλ νμν μ°μ°κ³Ό μ²λ¦¬λ₯Ό μ§νν©λλ€.
- λ©μλμ μ§μ λ³μμ μΈμ κ°μ νμ©νμ¬ μμ μ μνν©λλ€.
νΈμΆν λ©μλμ λ°ν
- νΈμΆν λ©μλκ° μ€νμ μλ£νκ³ λ°νλλ©΄ νΈμΆν μ€ν μμμμ ν΄λΉ νλ μμ΄ μ κ±°λ©λλ€.
- νλ μμ΄ μ κ±°λλ©΄ νΈμΆν λ©μλμ κ΄λ ¨λ λ©λͺ¨λ¦¬λ₯Ό λ€μ μ¬μ©ν μ μκ² λ©λλ€.
λ©μλ νΈμΆ μμλ νΈμΆμ λ©μλμ νΈμΆν λ©μλ κ°μ λ©λͺ¨λ¦¬ μμμ΄ μνΈ μμ©ν©λλ€. νΈμΆμ λ©μλ μμμμλ νΈμΆν λ©μλμ μΈμ κ°μ μ μ₯νκ³ , νΈμΆν λ©μλ μμμμλ μ§μ λ³μμ νμν μ°μ°μ μ²λ¦¬ν©λλ€. κ°μ²΄λ λ°°μ΄κ³Ό κ°μ λμ μΌλ‘ ν λΉλ λ©λͺ¨λ¦¬λ ν μμμ μ μ₯λλ©°, μ¬λ¬ λ©μλμμ μ κ·Όνμ¬ μ¬μ©λ©λλ€. λ©μλ νΈμΆκ³Ό μ€νμ΄ μλ£λλ©΄ κ°κ°μ νλ μμ΄ μ€ν μμμμ μ κ±°λμ΄ λ©λͺ¨λ¦¬κ° ν΄μ λκ³ , λ€λ₯Έ λ©λͺ¨λ¦¬μ μ¬μ©ν μ μκ² λ©λλ€.
μ€νκ³Ό ν μμμ μνΈ μμ© μμ
μ€νκ³Ό ν μμμ λ©λͺ¨λ¦¬ μμ κ°μ μνΈ μμ©νμ¬ νλ‘κ·Έλ¨μ μ€νμ μ μ΄ν©λλ€. λ€μμ μ€νκ³Ό ν μμμ μνΈ μμ© μμμ λλ€.
1. κ°μ²΄ μμ±κ³Ό μ°Έμ‘°
public class Example {
public static void main(String[] args) {
Example obj = new Example();
obj.method();
}
public void method() {
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
}
}
μμ μμμμ Example
ν΄λμ€μ κ°μ²΄μ method
λ©μλκ° μ¬μ©λ©λλ€.
main
λ©μλ μ€νmain
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.Example
ν΄λμ€μ κ°μ²΄obj
κ° λμ μΌλ‘ ν μμμ μμ±λκ³ , ν΄λΉ μ£Όμκ°μ΄main
λ©μλμ νλ μμ μ μ₯λ©λλ€.
method
λ©μλ νΈμΆmethod
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.method
λ©μλμμ μ¬μ©λλ μ§μ λ³μarr
μ΄ λμ μΌλ‘ ν μμμ μμ±λκ³ , ν΄λΉ μ£Όμκ°μ΄method
λ©μλμ νλ μμ μ μ₯λ©λλ€.
λ°°μ΄ ν λΉκ³Ό κ° μ μ₯
method
λ©μλμμint
νμ λ°°μ΄arr
μ΄ μ μΈλκ³ , ν¬κΈ°κ° 3μΈ λ°°μ΄μ΄ ν μμμ ν λΉλ©λλ€.- λ°°μ΄μ κ° μμμ κ°μ΄ μ μ₯λ©λλ€.
λ©μλ μ€ν μ’ λ£
method
λ©μλμ μ€νμ΄ μ’ λ£λκ³ ,method
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμμ μ κ±°λ©λλ€.- λ°°μ΄
arr
μ ν μμμ κ·Έλλ‘ λ¨μμμΌλ©°, λ€λ₯Έ λ©μλμμλ μ°Έμ‘°ν μ μμ΅λλ€.
2. κ°μ²΄μ μ°Έμ‘° λ³κ²½
public class Example {
public static void main(String[] args) {
Example obj1 = new Example();
Example obj2 = new Example();
obj1.method(obj2);
}
public void method(Example obj) {
obj = null;
}
}
μμ μμλ κ°μ²΄μ μ°Έμ‘° λ³κ²½μ 보μ¬μ€λλ€.
main
λ©μλ μ€νmain
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.Example
ν΄λμ€μ κ°μ²΄obj1
κ³Όobj2
κ° λμ μΌλ‘ ν μμμ μμ±λκ³ , ν΄λΉ μ£Όμκ°μ΄main
λ©μλμ νλ μμ μ μ₯λ©λλ€.
method
λ©μλ νΈμΆmethod
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμ μμ±λ©λλ€.method
λ©μλμ μΈμλ‘ μ λ¬λobj2
μ μ£Όμκ°μ΄method
λ©μλμ νλ μμ μ μ₯λ©λλ€.
μ°Έμ‘° λ³κ²½
method
λ©μλμμobj2
μ κ°μ΄null
λ‘ λ³κ²½λ©λλ€.method
λ©μλμ νλ μμμ μ°Έμ‘° λ³κ²½λ κ°μ 보μ νκ² λ©λλ€.
λ©μλ μ€ν μ’ λ£
method
λ©μλμ μ€νμ΄ μ’ λ£λκ³ ,method
λ©μλμ νλ μμ΄ νΈμΆν μ€ν μμμμ μ κ±°λ©λλ€.obj2
λ μ¬μ ν ν μμμ μμ±λ κ°μ²΄μ μ£Όμλ₯Ό κ°μ§κ³ μμ΅λλ€.
μμ μμμμλ method
λ©μλμμ obj
μ κ°μ λ³κ²½ν΄λ obj1
μ΄ μ°Έμ‘°νλ κ°μ²΄μλ μν₯μ λ―ΈμΉμ§ μμ΅λλ€. μ΄λ κ°μ²΄ μ°Έμ‘°μ 볡μ¬λ³Έμ μ λ¬νκΈ° λλ¬Έμ
λλ€.
μμλ³ λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ΅μ νμ μ€μμ±
κ°μ λ°μ΄ν°λ₯Ό λ€λ₯Έ λ©λͺ¨λ¦¬ μμμ μ μ₯νλ κ²μ λ©λͺ¨λ¦¬ μ¬μ©μ μμ΄μ ν° μ°¨μ΄λ₯Ό λ§λ€ μ μμ΅λλ€. μμλ³ λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ΅μ νμ μ€μμ±μ μ΄ν΄νκΈ° μν΄ λ€μμ μ΄ν΄λ³΄κ² μ΅λλ€.
1. μ€ν μμμ λ©λͺ¨λ¦¬ κ΄λ¦¬
- μ€ν μμμ μ§μ λ³μμ λ©μλ νΈμΆ μ€νμ μ μ₯νλλ° μ¬μ©λ©λλ€.
- μ€ν μμμ μ»΄νμΌλ¬μ μν΄ μλμΌλ‘ ν λΉ λ° ν΄μ λλ―λ‘ κ°λ°μκ° μ§μ κ΄λ¦¬ν νμκ° μμ΅λλ€.
- μ€νμ ν¬κΈ°κ° ν° κ°μ²΄λ₯Ό μ μ₯νκ±°λ μ¬κ· νΈμΆκ³Ό κ°μ κ³Όλν λ©μλ νΈμΆμ νΌνλ©΄ μ€ν λ©λͺ¨λ¦¬λ₯Ό μ΅μ μΌλ‘ νμ©ν μ μμ΅λλ€.
2. ν μμμ λ©λͺ¨λ¦¬ κ΄λ¦¬
- ν μμμ λμ μΌλ‘ ν λΉλ κ°μ²΄μ λ°°μ΄μ μ μ₯νλ λ° μ¬μ©λ©λλ€.
- ν μμμ κ°λ°μκ° κ°μ²΄μ μμ± λ° μλ©Έμ μ§μ κ΄λ¦¬ν΄μΌ ν©λλ€.
- κ°μ²΄κ° λ μ΄μ νμνμ§ μμ λ
null
λ‘ μ€μ νκ±°λ,finalize()
λ©μλλ₯Ό μ¬μ©νμ¬ μ’ λ£ κ΄λ ¨ μμ μ μνν΄μΌ ν©λλ€. - λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νκΈ° μν΄ μ¬μ© νμλ λ©λͺ¨λ¦¬λ₯Ό λͺ μμ μΌλ‘ λ°νν΄μΌ ν©λλ€.
3. μ΅μ νμ μ€μμ±
- μμλ³ λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ€μμ±μ ν¨μ¨μ μΈ λ©λͺ¨λ¦¬ μ¬μ©κ³Ό μ±λ₯ μ΅μ νμ κΈ°μΈν©λλ€.
- μ€ν μμμ κ°λ¨νλ©΄μλ λΉ λ₯Έ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μ 곡ν©λλ€.
- ν μμμ λμ ν λΉμ μ μ°ν¨μ μ 곡νμ§λ§ λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ£Όμκ° νμν©λλ€.
- μ μ ν λ³μ λ²μ μ§μ , λ©λͺ¨λ¦¬ ν΄μ , κ°μ²΄ μ¬μ¬μ© λ±μ κ°λ° κ΄νμ ν΅ν΄ λ©λͺ¨λ¦¬ μ¬μ©μ μ΅μ νν μ μμ΅λλ€.
- λ©λͺ¨λ¦¬ μ΅μ νλ νλ‘κ·Έλ¨μ μ±λ₯μ ν₯μμν€κ³ μμ€ν 리μμ€λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ μ€μν μμμ λλ€.
λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ΅μ νλ νλ‘κ·Έλ¨ μ€ν λ° μ±λ₯μ μ§μ μ μΈ μν₯μ λ―ΈμΉ©λλ€. μ€ν μμκ³Ό ν μμμ μ μ₯λλ λ°μ΄ν°μ νΉμ±κ³Ό κ°λ°μμ μ μ ν κ΄λ¦¬λ λ©λͺ¨λ¦¬ μ¬μ©μ ν¨μ¨μ μ΄κ³ μμ μ μΌλ‘ λ§λλ μν μ ν©λλ€. μ μ ν λ³μ λ²μ μ§μ κ³Ό λ©λͺ¨λ¦¬ ν΄μ , κ°μ²΄ μ¬μ¬μ©κ³Ό κ°μ κ°λ° κ΄νμ μ€μνλ©΄ λ©λͺ¨λ¦¬λ₯Ό μ΅μ μΌλ‘ νμ©νμ¬ νλ‘κ·Έλ¨μ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
λκΈ