π»
Java νλ‘κ·Έλλ° - μλ° κΈ°λ³Έ λ¬Έλ² λ³Έλ¬Έ
μλ° μΈμ΄μ νΉμ§
1. μ΄μ체μ μ λ 립μ μ΄λ€.
: μλ°κ°μλ¨Έμ (JVM)μ ν΅ν΄μ κ°λ₯νλ°, μλ° μμ©νλ‘κ·Έλ¨μ μ΄μ체μ λ νλμ¨μ΄κ° μλ JVMνκ³ λ§ ν΅μ νκ³ JVMμ μλ° μμ©νλ‘κ·Έλ¨μΌλ‘λΆν° μ λ¬λ°μ λͺ λ Ήμ ν΄λΉ μ΄μ체μ κ° μ΄ν΄ν μ μλλ‘ λ³ννμ¬ μ λ¬νλ€.
2. κ°μ²΄μ§ν₯μΈμ΄μ΄λ€.
: κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° μΈμ΄ μ€μ νλλ‘ κ°μ²΄μ§ν₯ κ°λ μ νΉμ§μΈ μμ, μΊ‘μν, λ€νμ±μ΄ μ μ μ©λ μμν κ°μ²΄μ§ν₯μΈμ΄μ΄λ€. μ¬μ¬μ©μ±κ³Ό μ μ§λ³΄μμ μ©μ΄μ± λ± λ§μ μ₯μ μ κ°μ§κ³ μλ€.
3. μλ λ©λͺ¨λ¦¬κ΄λ¦¬(Garbage Collection)
: μλ°λ‘ μμ±λ νλ‘κ·Έλ¨μ΄ μ€νλλ©΄, κ°λΉμ§μ»¬λ ν°κ° μλμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄μ£ΌκΈ° λλ¬Έμ νλ‘κ·Έλλ¨Έλ λ©λͺ¨λ¦¬λ₯Ό λ°λ‘ κ΄λ¦¬νμ§ μμλ λλ€.
4. λ€νΈμν¬μ λΆμ°μ²λ¦¬λ₯Ό μ§μνλ€.
: λ€μν λ€νΈμν¬ νλ‘κ·Έλλ° λΌμ΄λΈλ¬λ¦¬(Java API)λ₯Ό ν΅ν΄ λΉκ΅μ 짧μ μκ°μ λ€νΈμν¬ κ΄λ ¨ νλ‘κ·Έλ¨μ μ½κ² κ°λ°ν μ μλλ‘ μ§μνλ€.
5. λ©ν°μ°λ λλ₯Ό μ§μνλ€.
: μΌλ°μ μΌλ‘ λ©ν°μ°λ λμ μ§μμ μ¬μ©λλ μ΄μ체μ μ λ°λΌ ꡬνλ°©λ²λ μμ΄νλ©°, μ²λ¦¬ λ°©μλ λ€λ₯΄λ€. κ·Έλ¬λ μλ°μμ κ°λ°λλ λ©ν°μ°λ λ νλ‘κ·Έλ¨μ μμ€ν κ³Όλ κ΄κ³μμ΄ κ΅¬νμ΄ κ°λ₯νλ€. κ·Έλ¦¬κ³ μ¬λ¬μ°λ λμ λν μ€μΌμ₯΄λ§μ μλ° μΈν°ν리ν°κ° λ΄λΉνκ² λλ€.
6. λμ λ‘λ©(Dynamic Loading)μ μ§μνλ€.
: λ³΄ν΅ μλ°λ‘ μμ±λ μ ν리μΌμ΄μ μ μ¬λ¬ κ°μ ν΄λμ€λ‘ ꡬμ±λμ΄ μλ€. μλ°λ λμ λ‘λ©μ μ§μνκΈ° λλ¬Έμ μ€ν μμ λͺ¨λ ν΄λμ€κ° λ‘λ©λμ§ μκ³ νμν μμ μ ν΄λμ€λ₯Ό λ‘λ©νμ¬ μ¬μ©ν μ μλ€λ μ₯μ μ΄ μλ€.
JVM(Java Virtual Machine)
"Write once, run anywhere"(νλ² μμ±νλ©΄ μ΄λμλ μ€νλλ€.) μ¦ μ΄λ κΈ°κΈ°, λλ μ΄λ μ΄μ체μ μμμλ μ€νλ μ μκ² νλ κ²κ³Ό νλ‘κ·Έλ¨ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νκ³ μ΅μ ννλ κ²μ΄ κΈ°λ³Έ κΈ°λ₯μ΄λ€. μ½λλ₯Ό μ€ννκ³ ν΄λΉ μ½λμ λν΄ λ°νμ νκ²½μ μ 곡νλ κ² λλ νλ‘μΈμ€ κ°μ λ¨Έμ μΌλ‘ μ μνλ€. JVMμ μ€νμ ν΅ν΄ ν(Heap)κ³Ό μ€ν(Stack)μ λ©λͺ¨λ¦¬ μ¬μ©μ νμΈνλ€.
- κ°λΉμ§ 컬λ μ (Garbage Collenction)
μλ° μ΄μ μλ νλ‘κ·Έλλ¨Έκ° λͺ¨λ νλ‘κ·Έλ¨ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νμΌλ, μλ°μμλ JVMμ΄ νλ‘κ·Έλ¨ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ€. JVMμ κ°λΉμ§ 컬λ μ μ΄λ νλ‘μΈμ€λ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ©°, μ΄ κ°λΉμ§ 컬λ μ μ μλ° νλ‘κ·Έλ¨μμ μ¬μ©λμ§ μλ λ©λͺ¨λ¦¬λ₯Ό μ§μμ μΌλ‘ μ°Ύμμ μ κ±°νλ€. κ°λΉμ§ 컬λ μ μ μ€ν μ€μΈ JVM λ΄λΆμμ μΌμ΄λλ€.
[μ°Έκ³ ]
JDK - μλ° κ°λ° λꡬ(Java Development Kit)
JRE - μλ° μ€ν νκ²½(Java Runtime Environment), μλ°λ‘ μμ±λ μμ©νλ‘κ·Έλ¨μ΄ μ€νλκΈ° μν μ΅μνκ²½
JDK = JRE + κ°λ°μ νμν μ€ννμΌ(javac.exe: μλ° μ»΄νμΌλ¬(μλ°μμ€μ½λ -> λ°μ΄νΈμ½λ) λ±)
JRE = JVM + ν΄λμ€λΌμ΄λΈλ¬λ¦¬(Java API)
λ³μμ νμ
: λ³μλ?κ°μ μ μ₯ν μ μλ λ©λͺ¨λ¦¬ 곡κ°μ λ§νλ€.
μλ£ν
: κ°μ μ’ λ₯μ λ°λΌ κ°μ΄ μ μ₯λ 곡κ°μ ν¬κΈ°μ μ μ₯νμμ μ μν κ²μ΄ μλ£νμ΄λ€.
μλ£νμλ λ¬Έμν(char), μ μν(byte, short, int, long), μ€μν(float, double) λ±μ΄ μλ€.
μλ£νμ ν¬κ² 'κΈ°λ³Έν(primitive type)' κ³Ό 'μ°Έμ‘°ν(reference type)' λ κ°μ§λ‘ λλ μ μλλ°, κΈ°λ³Έν λ³μλ μ€μ κ°μ μ μ₯νλ λ°λ©΄, μ°Έμ‘°ν λ³μλ μ΄λ€ κ°μ΄ μ μ₯λμ΄ μλ μ£Όμ(memory address)λ₯Ό κ°μΌλ‘ κ°λλ€. μλ°λ CμΈμ΄μ λ¬λ¦¬ μ°Έμ‘°ν λ³μ κ°μ μ°μ°μ ν μ μμΌλ―λ‘ μ€μ μ°μ°μ μ¬μ©λλ κ²μ λͺ¨λ κΈ°λ³Έν λ³μμ΄λ€. μ°Έμ‘°ν λ³μλ₯Ό μ μΈν λλ λ³μμ νμ μΌλ‘ ν΄λμ€μ μ΄λ¦μ μ¬μ©νλ―λ‘ ν΄λμ€μ μ΄λ¦μ΄ μ°Έμ‘°λ³μμ νμ μ΄ λλ€. (μ, Date today = new Date(); -> Dateν΄λμ€ νμ μ μ°Έμ‘°λ³μ todayλ₯Ό μ μΈν κ²)
/**
* @Author : κΉμν
* @Date : 2020. 4. 27.
* @Description : μλ£ν
*/
λ°μ΄ν°λ‘ λ€μ΄κ°λ κ²μ μλ£ν, λͺ¨μλ₯΄λ©΄ error μ΄κ³ λ¨μΌλ©΄ error μλλ€. κ·Έλ μ§λ§ μ μ νκ² λ§λ λ°μ΄ν° νμ μ μ μ€μ ν΄μ£Όλλ‘ νμ.
μ»΄νμΌνλ©΄ μ£ΌκΈ°μ΅μ₯μΉ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌκ°λ€κ° νλ‘κ·Έλ¨μ΄ λλλ©΄ λ©λͺ¨λ¦¬ 곡κ°μμ λ΄λ €μ¨λ€.
- μ«μ(μ μ, μ€μ)
- μ μ : byte, short, int, long
- μ€μ : float, double
- λ¬Έμ : (2byte)
- λ¬Έμμ΄ : 2byte μ΄μ μ°Έμ‘°ν μλ£ν
[μ°Έκ³ ]
CμΈμ΄μμλ
char *str = "Hello";
printf("%d", str); -> strμ μ£Όμκ°
printf("%s", *str); -> strμ 첫λ²μ§Έ λ¬ΈμλΆν° 맨 λ§μ§λ§ λκ°κΉμ§ μΆλ ₯νλ€.
Oracleμ λ¬Έμμ΄μ λ²μ λ³λ‘ μλ€ λ¬Έμμ κ³΅λ°±μ΄ λ€μ΄κ°λ€. (κ·Έλμ ν¬κΈ°λ₯Ό λλνκ² μ‘μμ€μΌνλ€.)
μλ°μ λ¬Έμμ΄μ 맨 λ€μ 곡백κ°(null)μ΄ λ€μ΄κ°λ€.
μλ°μμ μ£Όμκ°μ λΉκ΅ν μΌμ κ±°μ μμΌλ―λ‘ λ¬Έμμ΄ λΉκ΅μλ equals()λ₯Ό μ¬μ©νλλ‘ νμ.
- λ Όλ¦¬ν μλ£ν : T(1), F(0) 1btye λ΄λΆμ μΌλ‘ trueλ 1λ‘, falseλ 0 κ°μΌλ‘ λ€μ΄κ°λ€.
[μ°Έκ³ ] 보μνν
μμ§μλ₯Ό μ΄μ§μ μ«μλ‘ λ°κΏλΌ.
μ΄μ§μ μ«μλ₯Ό μμ§μλ‘ λ°κΏλΌ.
μ¦, μμλ©΄
μ) -15μ΄λ©΄ 14λ₯Ό μ΄μ§μλ‘ λ³νν λ 0μΌλ‘ μ±μμ£Όκ³ λλ¨Έμ§λ₯Ό 1λ‘ μ±μμ§λ€.
0000 1110 (1μ 0μΌλ‘ λ°κΎΈκΈ°)-> 1111 0001
/**
* @Author : κΉμν
* @Date : 2020. 4. 27.
* @Description : μ°μ°μ μ°μ μμ
* 1) μ΅μ°μ μ°μ°μ : ., [], ()
* 2) λ¨ν μ°μ°μ : !, ~, +/-, ++/--(μ μνμ¦κ°μ°μ°μ), (cast) λλ (μλ£ν)
* 3) μ°μ μ°μ°μ : *, /, %, +, -
* 4) μννΈ μ°μ°μ : <<, >>, >>>
* 5) λΉκ΅μ°μ°μ : <, >, <=, >=, ==, !=
* 6) λ
Όλ¦¬μ°μ°μ : &, ^, |, &&, ||
* 7) μΌνμ°μ°μ : 쑰건μ?μ°Έ:κ±°μ§
* 8) λμ
μ°μ°μ : =, *=, /=, %=, +=, &=, ^=, ...
* 9) νμνμ¦κ°μ°μ°μ : ++/--
* 10) μμ°¨μ°μ° : ,
*/
- λ¨ν μ°μ°μ : !, ~, +/-, ++/--, (cast) λλ (μλ£ν)
- 1) μ¦κ°μ°μ°μ
- 2) CAST(μλ£ν) μ°μ°μ
μ μλ©΄ μ μ, μ€μλ©΄ μ€μ λ± λ§κ² μ¨μ£Όλ κ²μ΄ κ°μ₯ μ΄μμ μΈ κ²½μ°μ΄λ€. μ°μ° κ²°κ³Ό λ²μκ° μ μΈν μλ£νμ λ²μλ₯Ό λ²μ΄λμ λ ν° λ²μμ μλ£νμ΄ νμν κ²½μ° ν° λ²μμ λ³μλ₯Ό μ¬μ©νλ©΄ λλ€.
κ·Έλ¬λ, μλ₯Ό λ€μ΄ μ μ + μ€μ λ₯Ό μ μνμΌλ‘ λ°κΏμ£Όλ κ²½μ°, CASTμ°μ°μλ₯Ό μ΄μ©ν νλ³νμ΄ νμνλ€.
νλ³ν
νλ³ν(μΊμ€ν , casting)μ΄λ? λ³μ λλ μμμ νμ μ λ€λ₯Έ νμ μΌλ‘ λ³ννλ κ²
- νλ³ν λ°©λ²
(νμ ) νΌμ°μ°μ
double d = 85.6;
int score = (int) d;
μλ νλ³ν
μλ‘ λ€λ₯Έ νμ κ°μ λμ μ΄λ μ°μ°μ ν λ, νλ³νμΌλ‘ νμ μ μΌμΉμν€λ κ²μ΄ μμΉμ΄μ§λ§ κ²½μ°μ λ°λΌ νΈμμμ΄ μ΄μ λ‘ νλ³νμ μλ΅ν μ μλ€. κ·Έλ λ€κ³ ν΄μ νλ³νμ΄ μ΄λ£¨μ΄μ§μ§ μμ κ²μ μλκ³ , μ»΄νμΌλ¬κ° μλ΅λ νλ³νμ μλμ μΌλ‘ μΆκ°νλ€.
λ³μκ° μ μ₯ν μ μλ κ°μ λ²μλ³΄λ€ λ ν° κ°μ μ μ₯νλ €λ κ²½μ°μ νλ³νμ μλ΅νλ©΄ μλ¬κ° λ°μνλ€.
μλ νλ³ν κ·μΉ
1. booleanμ μ μΈν λλ¨Έμ§ 7κ°μ κΈ°λ³Ένμ μλ‘ νλ³νμ΄ κ°λ₯νλ€.
2. κΈ°λ³Ένκ³Ό μ°Έμ‘°νμ μλ‘ νλ³νν μ μλ€.
3. μλ‘ λ€λ₯Έ νμ μ λ³μκ°μ μ°κ°μ νλ³νμ νλ κ²μ΄ μμΉμ΄μ§λ§, κ°μ λ²μκ° μμ νμ μμ ν° νμ μΌλ‘μ νλ³νμ μλ΅ν μ μλ€.
- μ°μ μ°μ°μ : *, /, %, +, -
- λΉκ΅μ°μ°μ : <, >, <=, >=, ==, !=
- λ Όλ¦¬μ°μ°μ : & , ^ , | , && , ||
- μΌνμ°μ°μ : 쑰건μ? μ°Έ: κ±°μ§
- λμ μ°μ°μ : =, *=, /=, %=, +=, &=, ^=, ...
'KITRI > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Java νλ‘κ·Έλλ° - Scannerλ‘ μ λ ₯ λ°κΈ° (0) | 2020.04.28 |
---|---|
Java νλ‘κ·Έλλ° - λλ²κΉ (Debugging) λ°©λ² (0) | 2020.04.28 |
Java νλ‘κ·Έλλ° - μ μ΄λ¬Έ(쑰건문 ifλ¬Έ, switchλ¬Έ / λ°λ³΅λ¬Έ forλ¬Έ, whileλ¬Έ) (0) | 2020.04.28 |
Java νλ‘κ·Έλλ° - μ΄ν΄λ¦½μ€ κΈ°λ³Έ μ€μ (0) | 2020.04.27 |
Java νλ‘κ·Έλλ° - JDK λ€μ΄λ‘λ λ° Eclipse μ€μΉνκΈ° (0) | 2020.04.24 |