[TIL] Hello, World!
1-1. Hello, World!
λλ λ§
- βHello Worldβ νλ‘κ·Έλ¨λ§ μ λλ‘ κ³΅λΆνλ©΄ μλ° μΈμ΄μ μ λ° μ΄μμ μ΅νλ κ²κ³Ό λ€λ¦ μμ
- βHello Worldβ νλ‘κ·Έλ¨μ μμ±νλ €λ©΄ jdkμ€μΉ, μΈν 리μ μ΄ μ€μΉ, ν΄λμ€, ν¨μ, publicμ λν κ°λ , staticμ λν κ°λ , κ·Έλ¦¬κ³ λ§μ§λ§ μ€νκΉμ§.. μ΄ λͺ¨λ κ²μ μμμΌ ν¨
JDK μ€μΉ
- μλ°μ½λ©μ μμνκΈ° μ μ κ°λ°νκ²½μ λ¨Όμ μΈν
ν΄μΌ ν¨
- κ°λ°νκ²½μ΄λ μλ°λ‘ νλ‘κ·Έλ¨μ λ§λ€ μ μλ μ»΄ν¨ν νκ²½μ λ§ν¨
- μ¦, νλ‘κ·Έλ¨ μμ€λ₯Ό μμ±νλ ν΄, μμ±ν μμ€λ₯Ό μ»΄νμΌ νλ νλ‘κ·Έλ¨λ±μ μ€μΉν΄μΌν¨
- JDKλ Java Development Kitμ μ½μ
- μλ° νλ‘κ·Έλ¨μ λ§λ€κΈ° μν΄μλ λꡬλ JDKλ₯Ό μ€μΉν΄μΌν¨
- μλ°λ μλ μ¬ λ§μ΄ν¬λ‘μμ€ν μ¦μμ λ§λ€κ³ λ°°ν¬νμ§λ§ μ€λΌν΄μ΄ μ¬μ μΈμν¨
μλ°μμ€μ μ»΄νμΌ
- JDKλ₯Ό μ€μΉνλ€λ©΄ jdkκ° μ€μΉλ λλ ν 리μ
/usr/bin/
μ javac.exeμ java.exe νμΌμ΄ μ μ₯λμ΄ μμ- νΉμλΌλ java.exeλ§ μκ³ javac.exeκ° μλ€λ©΄ jdkκ° μλ jreλ₯Ό μ€μΉν κ²μ΄λ―λ‘ λ€μ jdkλ₯Ό λ€μ΄λ‘λν΄μΌν¨
- javacλ java compilerμ μ½μ΄, μλ°νμΌμ μ»΄νμΌν λ μ¬μ©νλ κ²μ΄ λ°λ‘ javac.exe νμΌ
- μ»΄νμΌμ΄λ νλ‘κ·Έλλ¨Έκ° μμ±ν μμ€μ½λλ₯Ό μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ λ§(κΈ°κ³μ΄)λ‘ λ°κΎΈλ νμ
- λͺ¨λ νλ‘κ·Έλλ° μΈμ΄μλ μ»΄νμΌλ¬ λλ κ·Έμ λΉμ·ν κΈ°λ₯μ νλ κ²λ€μ΄ μμ
μλ°νμΌ μ΄λ?
- μ°λ¦¬κ° μμ±ν΄μΌ ν μλ° νλ‘κ·Έλ¨
-
μ΄ μλ° νλ‘κ·Έλ¨μ .java λΌλ νμ₯μλ₯Ό κ°μ§ νμΌλ‘ μ μ₯νκ² λλλ° μ΄λ κ² μ μ₯λλ .java νμΌμ μλ°νμΌ λλ μλ°μμ€λΌκ³ ν¨
-
MyProgram.java
λΌλ μλ° νμΌμ μμ±νλ€λ©΄ νλ‘κ·Έλ¨μ΄ μ μμ μΌλ‘ λμνλ μ§ νμΈνκΈ° μν΄μ νλ‘κ·Έλ¨μ μ€νμν€κ³ μΆμ λ- μλ°λ‘ μμ±ν νμΌμ μ€ννκΈ° μν΄μλ λ λ²μ λ¨κ³λ₯Ό κ±°μ³μΌλ§ ν¨
- .java νμΌμ .class νμΌλ‘ λ°κΎΈμ΄ μ£Όλ μ»΄νμΌ λ¨κ³
- .class νμΌμ μ€νμν€λ μ€νλ¨κ³
-
μ΄λ κ² λ λ¨κ³λ₯Ό κ±°μΉλ©΄ μ°λ¦¬λ μμ±ν νλ‘κ·Έλ¨μ μ€νμμΌ λ³Ό μ μμ
-
Compilerλ javac.exeμ ν΄λΉλκ³ Java VMμ java.exeμ ν΄λΉ
- μλ°λ μ»΄νμΌμ ν κ²°κ³Όκ° exeκ° μλ classκ° λ¨
- C/C++ λ±μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ μ΅μ’
κ²°κ³Όλ¬Όλ‘ exeνμΌμ λ§λ€μ΄ λ
- exe νμΌμ κ³μ°κΈ°μ κ°μ μ νΈλ¦¬ν°μΌμλ κ²μμΌ μλ μμ
- μ¬μ©μλ λ¨μν exe νλ‘κ·Έλ¨μ μ€ννκΈ°λ§ νλ©΄ νλ‘κ·Έλ¨μ μ€νμμΌ λ³Ό μ μμ
- C/C++κ³Ό κ°μ μΈμ΄λ μ»΄νμΌ λ μ€ν νμΌμ λͺ¨λ μ΄μ체μ μμ λμΌνκ² μ¬μ©νλκ²μ΄ λΆκ°λ₯
- μλμ°μμ μ»΄νμΌν νλ‘κ·Έλ¨μ 리λ μ€μμλ μ¬μ©ν μ μμ
- μλ°μ JVMκ³Ό κ°μ μ€κ°λ¨κ³μ μν μ μννλ κ²μ΄ μκΈ° λλ¬Έ
- C/C++ λ±μ μΈμ΄μμ λ§λ€μ΄μ§ μ€ννμΌμ JVMκ°μ μ€κ°λ¨κ³λ₯Ό κ±°μΉμ§ μκΈ° λλ¬Έμ λΉ λ₯Έ μλλ‘ μνλ¨
- νμ§λ§ μ΄μ체μ λ§λ€ λ³λμ μ€ννμΌμ μμ±ν΄μΌ νλ€λ λ¨μ μ΄ μμ
- μλ°λ JVMμ΄λΌλ μ€κ°λ¨κ³κ° μμΌλ―λ‘ Cλ±μ μΈμ΄λ³΄λ€λ μλκ° λλ¦Ό
- νμ§λ§ νλ² μμ±ν νμΌμ μ΄λ€ OSμμλΌλ μ¬μ©ν μ μλ€λ μ₯μ μ΄ μμ
- νλ² μμ±ν κ²μ λ리 μ¬νμ©νλ κ²μ΄ μλ°μ κ°μ₯ ν° νΉμ§μ΄μ κ°μ₯ ν° μ₯μ
- μλ° λν λ°μ μ λ°μ (JITμ λμ λ±)μ κ±°λνμ¬ μ€ν μλλ νλμ¨μ΄λ₯Ό μ§μ μ μ΄νλ μΌμ΄μ€λ§ μλλΌλ©΄ c/c++ λ±μ κ±°μ κ·Όμ νκ² λ°λΌμ‘μ