μ€ν κ³Όμ
μλ° νλ‘κ·Έλ¨μ μΌλ° νλ‘κ·Έλ¨λ³΄λ€ μλ° κ°μ λ¨Έμ μ΄λΌλ ν λ¨κ³λ₯Ό λ κ±°μ³μΌ νλ―λ‘ μλμ μΌλ‘ μ€ν μλκ° λ리λ€λ λ¨μ μ κ°μ§κ³ μλ€.
μλ° μ»΄νμΌλ¬ (Java compiler)
μλ° μ»΄νμΌλ¬λ μλ°λ₯Ό κ°μ§κ³ μμ±ν μλ° μμ€ μ½λλ₯Ό μλ° κ°μ λ¨Έμ μ΄ μ΄ν΄ν μ μλ μλ° λ°μ΄νΈ μ½λ(0κ³Ό 1λ‘ μ΄λ£¨μ΄μ§ μ½λ)λ‘ λ³ννλ€. μλ° μ»΄νμΌλ¬λ μλ°λ₯Ό μ€μΉνλ©΄ javac.exe μ€ν νμΌ ννλ‘ μ€μΉλλ€.
- JITμ»΄νμΌ(Just In Time) : μ€ννκ²½μ λ§λ JVMμ μ€μΉνλ©΄ μ΄μ체μ λ³λ‘ μ½λλ₯Ό μ½μ μ μλλ‘ μ»΄νμΌ μμ μ λ§μΆ°μ λ²μ
μλ° λ°μ΄νΈ μ½λ (Java bytecode)
μλ° κ°μ λ¨Έμ μ΄ μ΄ν΄ν μ μλ μΈμ΄λ‘ λ³νλ μλ° μμ€ μ½λλ₯Ό μλ―Έ.
μλ° μ»΄νμΌλ¬μ μν΄ λ³νλλ μ½λμ λͺ λ Ήμ΄ ν¬κΈ°κ° 1λ°μ΄νΈλΌ λΆμ¬μ§ λͺ μΉμΌλ‘ μλ° λ°μ΄νΈ μ½λμ νμ₯μλ .classμ΄λ€. μλ° λ°μ΄νΈ μ½λλ μλ° κ°μ λ¨Έμ λ§ μ€μΉλμ΄ μμΌλ©΄ μ΄λ€ μ΄μ체μ μμλ μ€ν κ°λ₯νλ€.
μλ° κ°μ λ¨Έμ (java Virtual Machine, JVM)
μλ° λ°μ΄νΈ μ½λλ₯Ό μ€νμν€κΈ° μν κ°μμ κΈ°κ³.
μλ°λ‘ μμ±λ λͺ¨λ νλ‘κ·Έλ¨μ μλ° κ°μ λ¨Έμ μμλ§ μ€ν κ°λ₯νλ―λ‘ μλ° νλ‘κ·Έλ¨μ μ€ννκΈ° μν΄μλ λ°λμ μλ° κ°μ λ¨Έμ μ΄ μ€μΉλμ΄ μμ΄μΌ νλ€.
λ°λΌμ μ€λΌν΄μ λλΆλΆμ μ£Όμ μ΄μ체μ λΏ μλλΌ μΉ λΈλΌμ°μ , μ€λ§νΈ ν°, κ°μ κΈ°κΈ° λ±μμλ μλ° κ°μ λ¨Έμ μ μμ½κ² μ€μΉν μ μλλ‘ μ§μνκ³ μλ€.
λ¨, JVMμ μ΄μ체μ μ μ’ μμ μ΄λ―λ‘ κ° μ΄μ체μ μ λ§λ μλ° κ°μ λ¨Έμ μ μ€μΉν΄μΌ νλ€.
μλ° κ°μ λ¨Έμ JVM ꡬμ±
1. μλ° μΈν°ν리ν°(Interpreter) : μλ° μ»΄νμΌλ¬μ μν΄ λ³νλ μλ° λ°μ΄νΈ μ½λλ₯Ό μ½κ³ ν΄μ
2. ν΄λμ€ λ‘λ(class loader) : λμ μΌλ‘ ν΄λμ€λ₯Ό λ‘λ©ν΄μ£Όλ μν
3. JIT μ»΄νμΌλ¬(Just-In-Time compiler) : μ€νμ€μΈ λ°νμμ μ€μ κΈ°κ³μ΄(μμ μμ€ν μ½λ)λ‘ λ³νν΄μ£Όλ μ»΄νμΌλ¬
λμ λ²μ(dynamic translation)μ΄λΌκ³ λ λΆλ¦¬λ κΈ°λ²μΌλ‘ νλ‘κ·Έλ¨μ μ€ν μλλ₯Ό ν₯μμν€κΈ° μν΄ κ°λ°.
4. κ°λΉμ§ 컬λ ν°(garbage collector) : λμ΄μ μ¬μ©νμ§ μλ λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ νμν΄ κ°λ°μκ° λ°λ‘ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νμ§ μμλ λκ² ν¨.
μλ° λ°νμ νκ²½ (Java Runtime Environment, JRE)
κ°λ°μκ° μ ν리μΌμ΄μ κ³Ό μλΉμ€κ°μ μλ²½ν λ°μ΄ν° μ°κ²°μ ꡬμΆν μ μλλ‘ μ§μ.
- λ°νμ(Runtime) : νλ‘κ·Έλ¨μ μ€ννλ μμ
μ°Έκ³ - 2023.06.27 - [sw κ°λ° κ°μ] - κ°λ° νκ²½ ꡬμΆ
'κ°λ° μ΄μΌκΈ° > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Java - λ³μ (variable) (0) | 2023.06.29 |
---|---|
Java - System.out.println() (0) | 2023.06.29 |
Java - λ€μ΄λ‘λ λ° νκ²½ λ³μ μ€μ νκΈ° (0) | 2023.06.28 |
Java - 기본 ꡬ쑰 (0) | 2023.06.28 |
Java - κ°μ (κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°) (0) | 2023.06.28 |