[Java] Java μΈμ΄μ νΉμ§, μ₯μ μ λν΄
by rlaehddnd0422Javaλ JVM(μλ° κ°μ λ¨Έμ , Java Virtual Machine)μ μ¬μ©νμ¬ μ΄μ체μ μ λ 립μ μΌλ‘ λμν μ μλ μΈμ΄λ‘, μ΄λ μ΄μ체μ μμλ κ°μ ννλ‘ μ€νλ μ μλ κ°μ²΄ μ§ν₯ μΈμ΄μ λλ€.
νΉμ§
1. κ°μ²΄μ§ν₯μΈμ΄
- κ°μ²΄μ§ν₯ μΈμ΄μ νΉμ§μΈ μΊ‘μν, μμμ±, λ€νμ±μ μλ²½νκ² μ§μν©λλ€.
- μ¬κΈ°μ λ§νλ μΊ‘μν, μμμ±, λ€νμ±μ κ°μ²΄μ§ν₯κ°λ μ λν΄ λ€λ£° λ μμΈν μ€λͺ νλλ‘ νκ² μ΅λλ€.
- μ°μ μ μΌλ‘ μλ°λ μ΄λ° νΉμ§λ€μ΄ μλ€ μ λλ§ μμλμ΄λ μ’μ΅λλ€.
- κ°μ²΄λ₯Ό λ§λ€κΈ° μν μ€κ³λμΈ ν΄λμ€λ₯Ό μμ±νκ³ , κ°μ²΄μ κ°μ²΄ μ¦ ν΄λμ€μ ν΄λμ€λ₯Ό μ°κ²°ν΄μ λͺ©μ μ λ§κ² νλ‘κ·Έλ¨μ λ§λλ κ²μ΄ Java μΈμ΄κ° κ°μ§λ ν° νΉμ§μ λλ€.
2. λͺ¨λ μ΄μ체μ μμ μ€ν κ°λ₯
- μλ°λ JVMμ μ¬μ©νκΈ° λλ¬Έμ μμμ λ§νλ― μλ° μ€ννκ²½μ΄ μ€μΉλμ΄ μλ λͺ¨λ μ΄μ체μ μμ μ€ν κ°λ₯ν©λλ€.
3. νμ΄λΈλ¦¬λ μΈμ΄
- μ»΄νμΌ μΈμ΄μΈ λμμ μΈν°νλ¦¬ν° μΈμ΄λ‘ μμ±ν μ½λλ₯Ό μ»΄νμΌνμ¬ μ΄μ§ νμΌ(class)μ λ§λ λ€μ μλ° λ°νμμ΄ μ΄μ§ νμΌμ μΈν°νλ¦¬νΈ νλ©΄μ μ€νν©λλ€.
- μλ°λ μ»΄νμΌ μΈμ΄μ κ°κΉμ΄ μλμ μμ€ν λ 립μ±μ μ»μ μ μλ€.
μ½λ μμ± λ° μ€ν β‘οΈ (compile) β‘οΈ μ΄μ§ νμΌ μμ± β‘οΈ JVMμ μν΄ λ€μ κΈ°κ³μ΄λ‘ λ³ν(interprete)λμ΄ μ»΄ν¨ν°μ μ λ¬
μλ°λ μ»΄νμΌκ³Ό, μΈν°ν리ν°λ₯Ό λͺ¨λ μ¬μ©νμ¬ νμ΄λΈλ¦¬λ μΈμ΄λΌλ μ΄λ¦μΌλ‘ λΆλ¦½λλ€.
μ»΄νμΌ μΈμ΄λ?
μ»΄νμΌμ νλ‘κ·Έλλ° μΈμ΄λ₯Ό Runtime(μ€νμμ ) μ΄μ μ κΈ°κ³μ΄λ‘ ν΄μνλ μμ λ°©μμ λλ€.
μμ±ν μ½λλ₯Ό μμμ½λλ₯Ό μ»΄νμΌλ¬μ μν΄ κΈ°κ³μ΄ λλ μ»΄ν¨ν°κ° μ¬μ©ν μ μλ μ½λ(λͺ©μ νλ‘κ·Έλ¨, μ€ν νμΌ)μΌλ‘ λ²μν΄μ€λλ€.
λνμ μΌλ‘ μ»΄νμΌ μΈμ΄μλ C++, C, Pascalμ΄ μμ΅λλ€.
μΈν°νλ¦¬ν° μΈμ΄λ?
μΈν°νλ¦¬ν° μΈμ΄λ κΈ°κ³μ΄λ‘ λ³νκ³Όμ μμ΄ λ°νμ μμ μ μμ€μ½λλ₯Ό ν μ€μ© μ½μ΄κ°λ©° νλ‘κ·Έλ¨μ ꡬλνλ λ°©μμ λλ€.
κΈ°κ³μ΄λ‘ λ°λ‘ λ³ννμ§ μκ³ λ°νμμ μ¦μ ν΄μνκΈ° λλ¬Έμ λ°λ‘ Compile λ°©μμ λΉν΄ μ€νμκ°μ΄ λ리μ§λ§, λ°νμμ μ€μκ° λλ²κΉ λ° μμ€μ½λ μμ μ΄ κ°λ₯νλ€λ μ₯μ μ΄ μμ΅λλ€.
λνμ μΌλ‘ μΈν°νλ¦¬ν° μΈμ΄μλ Python, Ruby, JSκ° μμ΅λλ€.
νμ΄λΈλ¦¬λ μΈμ΄λ?
νμ΄λΈλ¦¬λ λ°©μμ μ»΄νμΌ λ°©μκ³Ό μΈν°νλ¦¬νΈ λ°©μμ μμ΄λμ λ°©μμ λλ€.
Javaλ μ΄μ체μ μ νλμ¨μ΄λ‘λΆν° μν₯μ λ°λ λΆλΆλ€μ μμ κ³ μ, μ»΄νμΌμ ν΅ν΄ μμ€μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ³ννμ¬ μ΄μ§νμΌμ λ§λ€κ³ - μ΄ν μ€ν μμ μμ μΈν°ν리ν°λ₯Ό ν΅ν΄ μ΄ μ΄μ§νμΌμ ν μ€μ© μ½μ΄ μ€ννλ νμ΄λΈλ¦¬λ λ°©μμ μ¬μ©ν©λλ€.
μ΄λ¬ν νμ΄λΈλ¦¬λ λ°©μ λλΆμ μ΄μ체μ μμ λ 립μ μ΄λΌλ μ₯μ μ κ°μ§μ§λ§, μ€νμ μν΄ JVMμ κ±°μΉκΈ° λλ¬Έμ λ€λ₯Έ μΈμ΄μ λΉν΄ μ€ν μλκ° λ리λ€λ λ¨μ μ΄ μμ΅λλ€. ( μ»΄νμΌ λ°©μ보λ€λ λ리긴 νμ§λ§, κ·Έλλ μ΄μ§ νμΌμ λ²μνκΈ° λλ¬Έμ μΈν°νλ¦¬νΈ λ°©μλ³΄λ¨ λΉ λ₯΄λ€. )
νλ§λλ‘ μ μνλ©΄ μλ°λ "μ΄λ μ΄μ체μ μμλ μ€ννλ€λ μ₯μ λμ , μλκ° λ리λ€"λ νΉμ§μ κ°μ§λλ€.
νμ΄λΈλ¦¬λ μΈμ΄μλ Java μ΄μΈμλ C#μ΄ μμ΅λλ€.
4. λ©λͺ¨λ¦¬λ₯Ό μ§μ κ΄λ¦¬νλ€
- κ°λ°μκ° μ§μ λ©λͺ¨λ¦¬μ μ κ·Όνμ§ μμ λ, μλ°κ° μ§μ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν©λλ€.
- μλ₯Όλ€μ΄ κ°μ²΄ μμ± μ μλμΌλ‘ λ©λͺ¨λ¦¬ μμμ μ°Ύμ ν λΉνκ³ , κ°λΉμ§ 컬λ ν°λ₯Ό μ€νμ¬μΌ μλμΌλ‘ μ¬μ©νμ§ μλ κ°μ²΄λ₯Ό μ κ±°νλ λΆλΆμμ μ΄ μ μ μ μ μμ΅λλ€.
5. μ€νμμ€ λΌμ΄λΈλ¬λ¦¬μ νλΆν¨
- μλ°λ μ€νμμ€ μΈμ΄μ΄κ³ μλ° νλ‘κ·Έλ¨μμ μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬ λν μ€νμμ€μ μμ΄ λ°©λνμ¬, κ³ κΈκΈ°λ₯μ ꡬννλ μ½λλ₯Ό μμ±νλ λμ κ²μ¦λ μ€νμμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν μ μλ€λ μ₯μ μ΄ μμ΅λλ€.
6. λ©ν° μ°λ λ μ§μ
- λ©ν° μ°λ λ κΈ°λ₯μ λ€λ₯Έ μΈμ΄μμλ μ΄μ체μ μ λ°λΌ ꡬνλ°©λ²λ μ²λ¦¬λ°©μλ λ€λ₯΄μ§λ§ μλ°μμ κ°λ°λλ λ©ν°μ°λ λ νλ‘κ·Έλ¨μ μμ€ν κ³Όλ κ΄κ³μμ΄ κ΅¬ν κ°λ₯νλ©°, κ΄λ ¨λ λΌμ΄λΈλ¬λ¦¬κ° μ 곡λλ―λ‘ κ΅¬νμ΄ μ½μ΅λλ€.
- κ·Έλ¦¬κ³ μ¬λ¬ μ°λ λμ λν μ€μΌμ₯΄λ§μ μλ°μ μΈν°ν리ν°κ° λ΄λΉνκ² λμ΄ λ©ν° μ°λ λ κΈ°λ₯μ λ€λ₯Έ μΈμ΄μ λΉν΄ λΉκ΅μ μ½κ² μ¬μ©ν μ μμ΅λλ€.
7. λ€νΈμν¬μ λΆμ°μ²λ¦¬ μ§μ
- μΈν°λ·κ³Ό λκ·λͺ¨ λΆμ°νκ²½μ μΌλμ λμ΄ λ€μν λ€νΈμν¬ νλ‘κ·Έλλ° λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ λΉκ΅μ 짧μ μκ°μ λ€νΈμν¬ κ΄λ ¨ νλ‘κ·Έλ¨μ μ½κ² κ°λ°ν μ μλλ‘ μ§μν©λλ€.
7. λμ λ‘λ© μ§μ
- μλ°λ‘ μμ±λ νλ‘κ·Έλ¨μ μ¬λ¬ ν΄λμ€λ‘ ꡬμ±λμ΄ μλλ°, μ€ν μμ λͺ¨λ ν΄λμ€κ° λ‘λ©λλ κ²μ΄ μλ, νλ‘κ·Έλ¨ μ€ν μ€ νμν μμ μ ν΄λμ€λ₯Ό λ‘λ©νμ¬ μ¬μ©ν μ μλ€λ μ₯μ μ΄ μμ΅λλ€.
<μ°Έκ³ μλ£>
'π Backend > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] String κ°μ²΄μ λΆλ³μ±(Immutablity)μ λν΄ (0) | 2023.09.20 |
---|---|
[Java] κΈ°λ³Έμ μΈ λ¬Έλ²λ€ - μλ£ν, μμ, 리ν°λ΄μ λν΄ (0) | 2023.09.20 |
[Java] λλ€μ - 2. ν¨μν μΈν°νμ΄μ€μ λν΄ (0) | 2023.08.13 |
[Java] λλ€μ - 1. λλ€μ μμ±λ²μ λν΄ (0) | 2023.08.13 |
[Java] Generic Type classμ λν΄ (3) | 2023.06.11 |
λΈλ‘κ·Έμ μ 보
Study Repository
rlaehddnd0422