βκΆκΈμ¦β
μ΅κ·Ό λ©΄μ μ 보κ²λλλ° λ€λλ€ λ©΄μ μΌλ‘ μ§νλμλ€.
κ°λ μ λμ§κ³ μ€λͺ ν μ μλ μ¬λμ μμ λ€μ΄μ μ€λͺ μ νλ κ²μ΄μλ€.
JVMμ λν΄ μκ³ μλμ§, μ€λͺ μ ν΄μ€μ μλ μ¬λμ μμ λ€μ΄λ¬λΌκ³ νλ€.
νμ§λ§ λλ Java Virtual Machineμ΄λΌκ³ λ§ μκ³ μμκ³ , μμΈν λ΄μ©μ λͺ¨λ₯΄κ³ μμκΈ° λλ¬Έμ μμλ³΄κ³ μ κΈμ μ¨λ³΄λ €κ³ νλ€.
Java Virtual Machine (JVM)
: μλ°λ₯Ό μ€ννκΈ° μν κ°μ κΈ°κ³
Javaλ OSμ μ’ μμ μ΄μ§ μλ€λ νΉμ§μ κ°μ§κ³ μλ€.
OSμ μ’ μλ°μ§ μκ³ μ€νλκΈ° μν΄μ OS μμμ Javaλ₯Ό μ€νμν¬ λ¬΄μΈκ°κ° νμνλ€.
κ·Έκ²μ΄ λ°λ‘ JVMμ΄λ€.
ν λ¬Έμ₯μΌλ‘ μ 리νμλ©΄
OSμ μ’ μλ°μ§ μκ³ CPUκ° Javaλ₯Ό μΈμ, μ€νν μ μκ² νλ κ°μ μ»΄ν¨ν°μ΄λ€.
κ·Έλ¦¬κ³ λ©λͺ¨λ¦¬ μ’ λ₯ μ€ νλμΈ νμ΄ μλ€.
νμ΄λ?
λμ μΌλ‘ ν λΉλ λ©λͺ¨λ¦¬ κ³΅κ° μ€ νλμ΄λ€.
μ£Όλ‘ νλ‘κ·Έλ¨ μ€ν μ€μ λμ μΌλ‘ μμ±λλ λ°μ΄ν°λ κ°μ²΄λ€μ΄ μ μ₯λλ 곡κ°μ΄λ€.
νμ λ³μλ‘ μ§μ μ κ·Όν μ μκ³ , μ£Όμλ₯Ό ν΅ν΄μλ§ μ κ·Όν μ μλ€.
μ΄λ ν λ΄λΆμμμ λ°μ΄ν° ꡬ쑰μ ν λΉλ λ©λͺ¨λ¦¬μ ν¬κΈ°κ° λμ μΌλ‘ λ³νν μ μκΈ° λλ¬Έμ΄λ€.
(C++μ 보μλ©΄)
C++μμλ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μ λͺ»ν΄μ λ©λͺ¨λ¦¬ λμκ° λ°μνκΈ°λ νλ€.
μλλ©΄ C++μμλ κ°λ°μκ° μ§μ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ ν΄μ ν΄μΌ νλ€.
μ΄ κ³Όμ μμ μ€μκ° λ°μνκ±°λ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νμ§ μλ κ²½μ°, λ©λͺ¨λ¦¬ λμκ° λ°μν μ μλ€.
int* dynamicInt = new int; // λμ μΌλ‘ int ν λ³μ ν λΉ
// ...
delete dynamicInt; // λ©λͺ¨λ¦¬ ν΄μ
μ΄λ κ² μ§μ ν΄μ λ₯Ό ν΄μ€μΌ νλ€.
νμ§λ§ μλ°λ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μμ²΄λ‘ μ²λ¦¬/ν΄μ λ₯Ό ν΄μ€λ€.
JVMμ΄ μλμΌλ‘ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μνν΄μ£ΌκΈ° λλ¬Έμ΄λ€.
κ°λΉμ§ 컬λ μ μ΄λΌλ κΈ°λ₯μ ν΅ν΄ νλ‘κ·Έλ¨μμ λ μ΄μ μ¬μ©λμ§ μλ κ°μ²΄λ€μ κ°μ§νκ³ μλμΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ€.
λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μν΄ JVMμ μν΄ μμμ ν΄μ λλ€.
μ΄λ¬ν κΈ°λ₯μ κ°λΉμ§μ»¬λ μ (GC, μ°λ κΈ° μμ§)μ΄λΌκ³ νλ€.
κ°λΉμ§ 컬λ μ (Garbage Collection)
μλ°μ GCλ λ μ΄μ μ¬μ©λμ§ μλ κ°μ²΄λ€μ νλ³νκ³ ν΄λΉ κ°μ²΄λ€μ΄ μ¬μ©νλ λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ ν΄μ ν΄μ€λ€.
μ΄λ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§νκ³ κ°λ°μκ° λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ κ²½μ°μ§ μμλ λλ€λ μ₯μ μ΄ μλ€.
(μλ°μμ κ°μ²΄μ μ°Έμ‘°κ°μ ν¬κΈ°λ 4λ°μ΄νΈ λλ 8λ°μ΄νΈμ΄λ€.)
βλ§λ¬΄λ¦¬β
μλ°λ κ°λΉμ§ 컬λ μ μ ν΅ν΄ λ©λͺ¨λ¦¬ κ΄λ¦¬λ₯Ό μλννκ³ , κ°μ²΄μλ μ§μ μ μΈ λ©λͺ¨λ¦¬ μ£Όμλ‘ μ κ·Όνλ κ²μ΄ μλλΌ μ°Έμ‘°κ°μ ν΅ν΄ μ κ·Όνλ€.
μ΄λ‘μ¨ λ©λͺ¨λ¦¬ λμ λ±μ λ¬Έμ λ₯Ό μ€μ΄κ³ μμ μ μΈ νλ‘κ·Έλλ°μ ν μ μλ€.
[JAVA] JVMμ΄λ? κ°λ λ° κ΅¬μ‘° (JDK, JRE, JIT, κ°λΉμ§ μ½λ ν°...)
JVMμ΄λ 무μμΈκ° Java Virtual Machineμ μ€μλ§. μ§μνλ©΄ 'μλ°λ₯Ό μ€ννκΈ° μν κ°μ κΈ°κ³(μ»΄ν¨ν°)'λΌκ³ ν μ μλ€. Java λ OSμ μ’ μμ μ΄μ§ μλ€λ νΉμ§μ κ°μ§κ³ μλ€. OSμ μ’ μλ°μ§ μκ³ μ€νλ
doozi0316.tistory.com