- Today
- Total
- spring
- tree
- μΈν΄
- PS
- μλ°
- CS
- Graph
- λ€μ΅μ€νΈλΌ
- java
- Algorithm
- array
- MST
- database
- μλ°μμ μ
- νλ‘κ·Έλλ¨Έμ€
- μλ£κ΅¬μ‘°
- OOP
- ꡬν
- λ°±μλ
- μ‘Έμ μν
- 그리λ
- μμμ λ ¬
- BFS
- λ¬Έλ²
- leetcode
- λ°μ΄ν°λ² μ΄μ€
- 벨λ§ν¬λ
- dp
- λ°±μ€
- pytorch
Partially Committed
0. JAVA λ? λ³Έλ¬Έ
JAVA λ Sun Microsystems, Inc. μμ κ°λ°ν κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μΈμ΄λ‘, κ°μ₯ μ€μν νΉμ§μ OS μ λ 립μ μ΄λΌλ κ²μ΄λ€. κ·Έλ¬λ―λ‘ μλ° νλ‘κ·Έλ¨μ OS μ μ’ λ₯μ μκ΄μμ΄ μ€νμ΄ κ°λ₯νλ€. μ΄λ λ€μν OS κ° μ‘΄μ¬νλ μΈν°λ· μμμ μ ν©ν μΈμ΄μ νΉμ§μΌλ‘, λ§μ μ¬μ©μλ₯Ό ν보νλ©° μ±μ₯ν΄μμΌλ©° κ°μ²΄μ§ν₯κ°λ κ³Ό κΈ°μ‘΄μ μ¬μ©νλ λ€λ₯Έ νλ‘κ·Έλλ°μΈμ΄μ μ₯μ μ μ κ·Ήμ μΌλ‘ μ±ννμ¬ μ½κ³ κ°κ²°νκ² νλ‘κ·Έλλ°μ΄ κ°λ₯νλλ‘ νμλ€. λ€μν Java API κ° μμΌλ©° νμ¬κΉμ§λ κ³μν΄μ μ λ°μ΄νΈλκ³ μλ€.
JAVA μ νΉμ§
- μ΄μ체μ μ λ
립μ
: JVM(Java Virtual Machine) μ μν΄ OS μ λ 립μ μΌλ‘ μ€νμ΄ κ°λ₯νλ€. μλ° μμ©νλ‘κ·Έλ¨μ μ€μ§ JVM μ ν΅μ νλ©° JVM μ΄ OS μ μ¬μ©μμ λͺ λ Ήμ λ³ν/μ λ¬νλ€. JAVA Program μ OS μ λ 립μ μ΄μ§λ§ JVM μ OS μ μ’ μμ μ΄κΈ° λλ¬Έμ μ¬λ¬ OS μ νΈνλλ λ€λ₯Έ λ²μ μ JVM λ₯Ό μ 곡νκ³ μλ€. μ΄μ κ°μ΄ JAVA program μ OS/HW μ κ΄κ³μμ΄ μ€ν κ°λ₯νλ°, μ΄λ₯Ό "Write once, run anywhere" μ΄λΌκ³ νννλ€κ³ νλ€. - κ°μ²΄μ§ν₯μΈμ΄(Object - oriented programming language)
: OOP μ λνμ μΈ νΉμ§μΈ μμ, μΊ‘μν, λ€νμ±μ΄ μ μ μ©λμ΄μλ€. - μλ λ©λͺ¨λ¦¬ κ΄λ¦¬(Garbage Collection)
: κ°λΉμ§ 컬λ ν°(Garbage Collector) κ° λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ κ΄λ¦¬νκΈ° λλ¬Έμ, μ¬μ©μκ° λ©λͺ¨λ¦¬λ₯Ό ν λΉ/λ°ννλ μΌμ μλμ μΌλ‘ μ²λ¦¬νμ§ μμλ λλ€. - λ€νΈμν¬ λΆμ°μ²λ¦¬
: λ€μν λ€νΈμν¬ νλ‘κ·Έλλ° λΌμ΄λΈλ¬λ¦¬(Java API)κ° μ‘΄μ¬ν΄μ λ€νΈμν¬ κ΄λ ¨ νλ‘κ·Έλ¨ κ°λ°μ΄ μ©μ΄νλ€. - λ©ν° μ°λ λ
: λ³΄ν΅ λ©ν° μ°λ λλ OS μ λ°λΌμ ꡬν/μ²λ¦¬λ°©μμ΄ λ€λ₯΄μ§λ§ JAVA μμλ μμ€ν κ³Ό κ΄κ³μμ΄ κ΅¬νμ΄ κ°λ₯νλ©°, κ΄λ ¨ λΌμ΄λΈλ¬λ¦¬κ° μ 곡λμ΄ κ΅¬νμ΄ μ©μ΄νλ€. κ·Έλ¦¬κ³ JAVA Interpreter κ° μ¬λ¬ μ°λ λμ λν scheduling μ λ΄λΉνλ€. - λμ λ‘λ©(Dynamic Loading)
: λ³΄ν΅ Java Application μ μ¬λ¬ κ°μ ν΄λμ€λ‘ ꡬμ±λμ΄ μλλ°, JAVA λ Dynamic Loading μ μ§μνλ―λ‘ μ€ν μ λͺ¨λ class κ° loading λμ§ μκ³ , νμν μμ μ κ°κ°μ class λ₯Ό loading νμ¬ μ¬μ©ν μ μλ€. λν μΌλΆ class κ° λ³κ²½λμ΄λ μ 체 Application μ λ€μ compile νμ§ μμλ λλ©°, application μ λ³κ²½ μ¬νμ΄ λ°μνλ€κ³ ν΄λ μ²λ¦¬ μμ μ΄ μ μ νΈμ΄λ€.
JVM(Java Virtual Machine)
JAVA λ₯Ό μ€ννκΈ° μν κ°μ λ¨Έμ μΈ JVM μ JAVA κ° OS/HW μ λ 립μ μΌλ‘ λμν μ μκ²λ μ§μνλ€. μΌλ°μ μΌλ‘ λ€λ₯Έ μΈμ΄λ‘ μμ±λ application μ program μ΄ OS λ§ κ±°μ³μ HW λ‘ μ λ¬λμ§λ§ JAVA application μ JVM μ κ±°μΉκ³ , μ΄λ HW μ λ§λλ‘ μμ ν μ»΄νμΌ λμ§ μκ³ μ€ν ν λ Interpret λλ―λ‘ μλκ° λ리λ€. μ»΄νμΌλ μλ° μ½λ(λ°μ΄νΈμ½λ)λ₯Ό κΈ°κ³μ΄λ‘ λ°λ‘ λ°κΏμ£Όλ JTT Compiler μ ν₯μλ optimazation κΈ°μ μ μν΄ μλμ μμ¦μλ μλμ κ²©μ°¨κ° ν¬κ² μ€μ΄λ€μλ€κ³ νλ€.
OS μ μ’ μμ μΈ μΌλ°μ μΈ Application μ OS κ° λ°λλ©΄ μ΄μ λ§μΆμ΄μ Program μ μμ ν΄μΌ νμ§λ§ Java application μ μ€μ§ JVM μ ν΅μ νκΈ° λλ¬Έμ OS/HW μ λ 립μ μΌλ‘ μ€νμ΄ κ°λ₯νλ€. νμ§λ§ JVM μ OS μ μ’ μμ μ΄λ―λ‘, OS μ λ§μΆμ΄μ JVM μ ꡬλΉν΄μΌ νλ€.
JAVA SE(Java Platform, Standard Edition)
μλ°μ νμ€μμΌλ‘, λ¬Έλ²μ μΈ κ΅¬μ±μ κ°μ κ²μ μ μνκ³ μλ μννΈμ¨μ΄μ μ€κ³λ(νΉμ specification)μ΄λ€.
JDK(Java Development Kit)
Java SE μ λ°λΌμ λ§λ€μ΄μ§ μννΈμ¨μ΄λ‘, Java νλ‘κ·Έλλ°μ μν΄μ JDK λ₯Ό μ€μΉν΄μΌ νλ€. JDK λ₯Ό μ€μΉνλ©΄ JVM κ³Ό JAVA API λ° κΈ°ν μ¬λ¬κ°μ§ νλ‘κ·Έλ¨λ€μ΄ μ€μΉλλ€.
JDK μ bin λλ ν 리μ μλ javac.exe λ java compiler μΌλ‘, java source code λ₯Ό byte code λ‘ compile νλ€.
java.exe λ java interpreter μΌλ‘ compiler κ° μμ±ν byte code λ₯Ό ν΄μ/μ€ννλ€.
javap.exe λ μμ΄μ λΈλ¬λ‘, compile λ class file μ μλ source λ‘ λ³ννλ€.
javadoc.exe λ μλ λ¬Έμ μμ±κΈ°λ‘ source code λ΄ μ£Όμμ μ΄μ©νμ¬ JAVA API λ¬Έμμ κ°μ νμμ λ¬Έμλ₯Ό μλ μμ±νλ€.
jar.exe λ μμΆ νλ‘κ·Έλ¨μΌλ‘ ν΄λμ€ νμΌ λ° νλ‘κ·Έλ¨ μ€ν κ΄λ ¨ νμΌλ€μ .jar νμΌλ‘ μμΆνκ±°λ μμΆ ν΄μ νλ€.
JRE(Java Runtime Environment)
μλ°κ° μ€μ λ‘ λμν λ νμν JVM, λΌμ΄λΈλ¬λ¦¬, κ°μ’ νμΌλ€μ΄ ν¬ν¨λμ΄ μλ€.
References
https://opentutorials.org/course/1223/4551
http://www.yes24.com/Product/Goods/24259565
'π» Study ! > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[CH07] κ°μ²΄μ§ν₯νλ‘κ·Έλλ°3 (OOP) (0) | 2022.08.01 |
---|---|
[CH07] κ°μ²΄μ§ν₯νλ‘κ·Έλλ°2 (OOP) (0) | 2022.07.31 |
[CH06] κ°μ²΄μ§ν₯νλ‘κ·Έλλ°1 (OOP) (0) | 2022.07.07 |
[CH05] λ°°μ΄ (0) | 2022.07.06 |
[CH02.] λ³μ (Variable) (0) | 2022.07.05 |