κ΅λΉμ§μ D+55
- μλ°νλ‘κ·Έλλ°1 -
λ³μμ μλ£ν
• λ³μ
λ³μλ λ©λͺ¨λ¦¬μ 곡κ°μ ν λΉνκ³ μ΄λ₯Ό μ κ·ΌνκΈ° μν μ΄λ¦μ΄λ€.
ex) λ©λͺ¨λ¦¬λ₯Ό λ§λ€κ³ κ·Έ λ©λͺ¨λ¦¬μ aλΌλ μ΄λ¦μ μ§μ΄μ£Όμμ λ aλ₯Ό λ³μλΌκ³ νλ€.
• μλ£ν
μλ£νμ λ³μλ₯Ό λ§λ€κΈ° μν νμμΌλ‘ ν¬κΈ°μ κ·μΉμ΄ λ΄ν¬λμ΄ μλ€.
int a; // size: 4byte, rule: μ μ
float a; // size: 4byte, rule: μ€μ
double a; // size: 8byte, rule: μ€μ
boolean a; // size: 1byte, rule: μ§λ¦¬κ°
Student a; // size: 4byte, rule: μ°Έμ‘°κ°
Animal a; // size: 4byte, rule: μ°Έμ‘°κ°
// μ°Έμ‘°κ°μ΄ λ€μ΄μλ Student aμ Animalμ aλ μ€μ²΄λ λ°λ‘ μλ€.
// Studnetνκ³Ό Animalμ κ²½μ° κ°κ°μ ν¬κΈ°κ° λ€λ₯΄λ€κ³ ν΄μ
//μ°Έμ‘°κ°μ ν¬κΈ°κ° λ³νμ§ μκΈ° λλ¬Έμ λͺ¨λ μ°Έμ‘°κ°μ ν¬κΈ°λ 4byteλ‘ λμΌνλ€.
• μλ£νμ μ’ λ₯
- Primitive Data type : μλ°μ κΈ°λ³Έ μλ£ν
- Non-Primitive Data type : νμ₯λ μλ£ν (user-defined type)
• μλ£νμ μ’ λ₯ : μ μ
- λͺ¨λ λ°μ΄ν°νμ μ κΈ°λ³Ένμ μ μνμ΄λ€. (νλ¨νκΈ° μ΄λ €μ΄ μν©μμλ μ μλ‘ μ²λ¦¬ν΄λ²λ¦¬κΈ°λ νλ€.)
- λΆνΈλΉνΈ(1) + λ°μ΄ν° λΉνΈ(31)
- λΆνΈλΉνΈ (sign-bit) : 0(μμ μ μ) / 1(μμ μ μ)
- μμλ λΆνΈλΉνΈλ 1λ‘νκ³ λ°μ΄ν° λΉνΈλ 2μ 보μλ‘ μ²λ¦¬νλ€.
- μλ°μμλ λΆνΈλΉνΈλ₯Ό λ°λμ ν¬ν¨νλλ° μ΄μ λ μ 맀λͺ¨νΈν λ¬Έμ κ° λ°μλ μλ μκΈ° λλ¬Έμ μ격νκ² λΆνΈλΉνΈλ₯Ό κ°μ§λλ‘ μ€μ ν΄ μ£Όμλ€.
ex) -21μ΅ + 21μ΅ = 0
0μ λͺ¨λ λΉνΈκ° 0μΌλ‘ μ ν λμ΄μΌ νλ€.
κ·Έλ°λ° λ§μ½ -21μ΅μ΄ sign-bitμ΄κ³ 21μ΅μ΄ unsignedλΌλ©΄ λ κ°μ λνμ κ²½μ° μ¬μΈλΉνΈλ‘ μΈν΄ λͺ¨λ κ°μ΄ 0μ΄ μλμ€λ κ²½μ°κ° λ°μλ μλ μλ€.
μ μνμμ μ νΈνλ λ°μ΄ν° νμ μ?
- μΌλ°μ μΌλ‘ Data-busλ 1μ±λμ΄ 32bit μ΄κΈ° λλ¬Έμ μ΄λν¬κΈ°μ λ°μ΄ν°νμ μ΄λ I/Oμλλ λμΌνλ€. (shortκ° λ΄λΆμ μΌλ‘ integerν νλ κ³Όμ μ κ±°μ³μΌ νλ€)
- κΈ°λ³Έμ μΌλ‘ μ μλ intλ‘ μ²λ¦¬νκΈ° λλ¬Έμ μνΈ νΈνμ± μΈ‘λ©΄μμλ intκ° μ΄λμ΄λ€.
- shortνμ λ§λ μ΄μ λ μ±λ₯μ΄λ κΈ°λ₯ μΈ‘λ©΄μμ λ§λ€μλ€κΈ° 보λ€λ μΈμ΄μ μμ±λ μΈ‘λ©΄(μ΄λ‘ μ)μμ λ§λ κ²μ΄κΈ° λλ¬Έμ intλ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
• μλ£νμ μ’ λ₯ : μ€μ
- μ€μλ₯Ό ννν λλ κ·Όμ¬μΉλ‘ ννμ΄ λλ€. (λ± λ¨μ΄μ§λ μ€μλΌλ νλλΌλ κ·Έκ²μ μ»΄ν¨ν° μ μ₯μμ κ·Όμ¬μΉλ‘ ννν κ²μ΄λ€.)
μ€μνμμ μ νΈνλ λ°μ΄ν° νμ μ?
- λ κ·Όμ¬μΉλ₯Ό μ°μ°νμ κ²½μ° μ€μ°¨κ° λ°μνκ² λλλ° μ΄λ, ν΄μλκ° λ€λ₯Έ λ κ·Όμ¬μΉλ₯Ό μ°μ°νλ€λ κ²μ μ€μ°¨μ΄ λ²μκ° λ 컀μ§κ² λλ€. κ·Έλ κΈ° λλ¬Έμ λ λ°μ΄ν°νμ μ μμ΄μ μ¬μ©νλ κ²λ³΄λ€ κ°μλ°μ΄ν°νμ μΌλ‘ ν΅μΌνλ κ²μ΄ κ°μ₯ λ°λμ§ νλ€.
- μΌλ°μ μΌλ‘λ doubleμ λ§μ΄ μ¬μ©νλ€.
for(float a = 0; a < 20.0; a++) { ... }
μμ μ½λλ λ¬Έμ μμ΄ μ λμκ°κΈ΄ νμ§λ§ μ¬μ€μ μλ―Έκ° μλ μ½λλΌκ³ ν μ μλ€.
μΌλ°μ μΌλ‘ λ°λ³΅λ¬Έμμ μ΄κΈ°κ°, 쑰건, μ¦κ°μ νμλ₯Ό νννκΈ° μνκ²μΌλ‘ μ¬μ©λμ΄ μ§λλ° ν΄λΉ λ°μ΄ν°νμ μ floatμΌλ‘ ν κ²½μ° κ·Όμ¬μΉλ‘ νλ¨λκΈ° λλ¬Έμ 20λ² λμκ°λ€λ μλ―Έλ³΄λ¨ 20λ²μ―€ λμκ°λ€λ μλ―Έλ‘ ν΄μλκΈ° λλ¬Έμ λ°λ³΅λ¬Έμμ floatμ νΌν΄μΌνλ€.
μμμ νλ³ν
• μμ
- μμλ κ°μ΄ λ³νμ§ μλ λ³μμ΄λ€.
- νλ² μ΄κΈ°νλλ©΄ κ°μ λ³κ²½ν μ μλ λ³μλ₯Ό μλ―Ένλ€.
final
- finalμ λ³μλ₯Ό λ°κΏ μ μλ μμνλ‘ λ§λλ ν€μλμ΄λ€.
μμλ₯Ό μ λ§λλκ°?
μμλ₯Ό λ§λλ κ°μ₯ 첫λ²μ§Έ μ΄μ λ κ°λ₯μ±μ μμ λ κ²μ΄λ€.
μμ μ½λλ₯Ό νμΈν΄λ³΄λ©΄ MAX_SIZEμ finalμ μ¬μ©νκΈ° λλ¬Έμ μ€κ°μ κ°μ΄ λ°λλ©΄ λ¬Έμ κ° λ°μλ κ²μ΄λ€.
κ·Έλ°λ° λ§μ½ finalμ΄ μλλΌ intλ‘ μ€μ νμ κ²½μ°μ μ§κΈ λΉμ₯ κ°μ΄ λ°λκ² λμ§ μλλΌλ μΈμ κ°λ λ°λ μ μλ κ²μ΄λ€.
μ¦, κ°μ΄ λμ€μ λ°κ»΄λ λ¬Έμ λ κ² μλ κ°λ₯μ±μ΄ λ΄ν¬λμ΄ μλ μνμΈ κ²μ΄λ€.
κ·Έλμ κ°λ₯μ±μ μμ μμ λ²λ¦¬λ κ²μ΄λ©°, μ΄λ‘μΈν΄ νλ‘κ·Έλ¨μ΄ λ¨λ¨ν΄μ Έ κ°κ±΄μ±μ΄ λμμ§λ κ²μ΄λ€.
κ·Έλ¦¬κ³ λλ²μ§Έ μ΄μ λ μμνλ₯Ό ν¨μΌλ‘μ¨ μ μμ±(adaptive) κΈ°λ₯λ κ°μ΄ ννν μ μλ€.
λ§μ½ μΆνμ MAX_SIZEμ κ°μ΄ 20μΌλ‘ λ°λλ©΄ μ¬λ¬λΆλΆμ κ°μ λμ νλ κ²μ΄ μλλΌ finalλ‘ μ€κ°μ κ°μ΄ λ³κ²½λ μ μκΈ° λλ¬Έμ μλ¨μ νλ²λ§ λ³κ²½ν΄μ£Όλ©΄ λͺ¨λ μ½λκ° λ³κ²½λ κ°μ μ μ©ν΄ μ€λ₯μμ΄ λΉ λ₯΄κ² λμλλ κ²μ νμΈν μ μλ€.
• 리ν°λ΄ μμ (Literals)
- 리ν°λ΄ μμλ λ³μλ₯Ό μμνν κ²μ΄ μλ λ°κΏ μ μλ μ€μΉΌλΌ κ°μ΄λΌκ³ νλ€.
- 리ν°λ΄μ μΌμͺ½μ μ¬ μ μμΌλ©°, λ°λμ μ€λ₯Έμͺ½μ μλ€. (= r value)
- 리ν°λ΄λ μΌμͺ½μ λ³μμ λμ λλ―λ‘ λ©λͺ¨λ¦¬μ μ μ¬κ° λλλ° μ΄λλ¬Έμ ν¬κΈ°μ κ·μΉμ΄ νμνλ€.
• ν λ³ν (type casting, type conversion)
// νλ³ν1 - μλ‘μ΄ λ°μ΄ν° νμ
μ λ³μμ λμ
λλ κ²
short a = 10;
int b = a;
// νλ³ν2 - νΉμ λ°μ΄ν°νμ
μ λ€λ₯Έ λ°μ΄ν°νμ
μ 리ν°λ΄κ°μ΄ λμ
λλ κ²
double a = 1.0f;
- νλ³νμ λ°μ΄ν°νμ μ κ·μΉμ λ³νμν€λ μ°μ°μ΄λ€.
ν λ³νμ λ°λμ§ν κ²μΈκ°?
νλ³νμ΄ λ°μλλ κ²μ κΈ°λ³Έμ μΌλ‘ μ’μ κ² μλ€.
κ·Έλ κΈ° λλ¬Έμ νλ³νμ μ΄λ»κ² μνλλκ° μ€μν κ²μ΄ μλλΌ μ΄λ»κ² νλ³νμ μμν€κ³ λ°μ΄ν°νμ μ μ€μ νλλκ° λ μ€μνλ€.
κ·Έλ°λ° κ΅³μ΄ νλ€λ©΄ νλ³ν κ²°κ³Όκ° λ Όλ¦¬μ μΌλ‘ μ ν¨ν΄μΌ νλ€.
ν λ³ν μ μ°¨
1. νλ³νμ μμΌμΌν€λκ²μ΄ μ μΌ μ’λ€.
2. νλ³νμ΄ μ΄λ£¨μ΄μ‘μ κ²½μ° λ Όλ¦¬μ μΌλ‘ μ ν¨ν κ²μΈμ§ νμΈνλ€.
3. λ Όλ¦¬μ μΌλ‘ λ§λ€κ³ νμ κ²½μ° λ°λμ λλ²κ±°λ‘ κ°μ νμΈν΄ μΆκ°μ μΈ λ¬Έμ κ° μλμ§ νμΈν΄ λ³Έλ€.
ν λ³ν μμΉ
- νλ³νμ 묡μμ μΌλ‘ μ΄λ£¨μ΄μ§ μ μλ€.
- ν¬κΈ°κ° λ§μ§ μμ κ²½μ° νλ³νμ΄ λΆκ°λ₯ νλ€.
- λͺ μμ μΈ νλ³νμ κ·Έ κ²°κ³Όλ₯Ό μ₯λ΄ν μ μμΌλ μ΅λν λ Όλ¦¬μ μΈ κ²°κ³Όλ₯Ό λμΆνλ €κ³ λ νμ§λ§ νμ κ²°κ³Όλ₯Ό λλ²κ±°λ‘ νμΈν΄λ³΄κ³ μ μμ μΌλ‘ νλ³νμ΄ μ΄λ£¨μ΄μ‘λμ§ νμΈν΄λ³΄κ³ , μν©μ λ°λΌ λ°λ μ μλ κ²κΉμ§ μμΈ‘ν΄μ νμΈν΄λ³΄λ³΄λ κ²μ΄ μ’λ€.
μ°μ°μ
• μ°μ°μ
- μ°μ°μλ μ€νΌλλλ₯Ό μ°μ°νκΈ° μν λͺ λ Ήμ΄ μ΄λ€.
- OPcode μ°μ°μ (operation code)
- Operand νΌμ°μ°μ : μ°μ°μμ λμ
νΉμ§
- μ°μ°μμλ μ°μ μμκ° μ‘΄μ¬νλ€.
- μ°μ°μ λ¨μΌκ°μ κ²°κ³Όλ₯Ό λ°μμν€λ©° μ΄λ¬ν κ²°κ³Όκ° νκ°κ° κ°λ₯νλ€λ©΄ ν΄λΉ μ½λλΈλμ Expressionμ΄λΌκ³ ν μ μλ€.
int a = 10 + 5 * 2; // Expression: 10 + 5 * 2;
μ’ λ₯
int a;
a = 5 + 6; // μ°μ μ°μ° - μ¬μΉμ°μ°
a = 4; // μ°μ μ°μ° - a=4λ₯Ό μννκ³ λμ€λ κ²°κ³Όλ₯Ό νκ°νκΈ° λλ¬Έμ μ°μ μ°μ°μ ν΄λΉνλ€.
if(k > 20) // λ
Όλ¦¬μ°μ° - true / false
- μ°μ μ°μ° : μ¬μΉμ°μ°, μ¬ννΈμ°μ° λ± κ²°κ³Όκ° μ°μ κ°μ΄ λμ€λ μ°μ°μ΄λ€.
- λ Όλ¦¬μ°μ° : μ°μ°μ κ²°κ³Όκ° trueλ falseμΈ λ Όλ¦¬κ°μ΄ λμ€λ μ°μ°μ΄λ€.
• Short-Circuit Evaluation (Lazy Evaluation)
- λ Όλ¦¬μ°μ°μμ μ°μ°μ ν¨μ¨μ λκΈ°μ΄ νν΄ λΆνμν μ°μ°μ μλ΅νλ λ Όλ¦¬μ°μ° μ΅μ ν λ©μΉ΄λμ¦(λμλ°©μ)μ΄λ€.
μμ μ½λλ₯Ό λμνμ κ²½μ° μ½μμ μ°μ΄μ νμΈν΄λ³΄λ©΄ μ°λ¦¬μ μμκ³Όλ λ€λ₯΄κ² "false 10 0"μ΄ λμ¨λ€.
μ΄μ λ λ°λ‘ λ Όλ¦¬μ°μ° μ΅μ ν λ©μΉ΄λμ¦ λλ¬ΈμΈλ° μλΆλΆμμ ((num1 += 10) < 0)μ falseκ°μ λνλΈλ€.
κ·Έλ°λ° λ€μ λ Όλ¦¬μ°μ°μ &&κ° λμμ κ²½μ°μ μλΆλΆμμ falseκ°μ΄ λμ€λ©΄ λ€μλ 보λλ§λ falseκ°μ΄ λμ€κΈ° λλ¬Έμ λ€μ λ₯Ό νμΈνμ§ μκ³ λ°λ‘ falseλ‘ λ΄λ³΄λ΄κΈ° λλ¬Έμ ((num2 += 10) > 0)κ³Όμ μ κ±°μΉμ§ λͺ»ν΄ num2κ° 0μ΄ λμ€κ² λλ κ²μ΄λ€.
μμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μ κ²°κ΅ λ Όλ¦¬μ°μ°μ μ¬μ©ν λ μ°μ μ°μ°μ ν¨κ» μ¬μ©νμ§ μκ³ λ Όλ¦¬μ°μ°μ΄ λ€μ΄κ°κΈ° μ μ 미리 μ°μ μ°μ°μ ν΄μ£Όκ³ λ Όλ¦¬μ°μ°μ νλκ²μ΄ λ°λμ§νλ€.
• μμλ³μ
κ°λ°μκ° λͺ μμ μΌλ‘ μ μΈνλκ² μλλΌ μ»΄νμΌλ¬κ° μ μΈνμ¬ λ§λ λ³μλ€.
μ»΄νμΌλ¬κ° λ³μμ΄λ¦μ μ§μκ²μ΄κΈ° λλ¬Έμ μ»΄νμΌλ¬λ ν΄λΉ λ³μμ μ κ·Όμ΄ κ°λ₯νμ§λ§ κ°λ°μλ μ κ·Όμ΄ λΆκ°λ₯νλ€.
μμλ³μλ μ½λλ₯Ό κ°λ¨νκ² ν μ μλ μ₯μ μ κ°μ§κ³ μμ§λ§ κ³Όλν μ¬μ©μ μ½λμ 볡μ‘λλ₯Ό μ¬λ¦°λ€.
μμλ³μ μ¬μ©λ°©λ² 3κ°μ§
μμλ³μλ ν¬κ² 3κ°μ§λ‘ μ°μ΄λλ° μμλ₯Ό λ³΄κ³ μ κΈ°μ΅νλλ‘ νλ€.
1) λλκ³ μ¬μ©νκΈ°
new NodeData();
NodeDataλ₯Ό νμ μ μ₯νκ³ μμλ³μμ μμμ£Όμλ₯Ό λ£λλ€.
μΈκ°μ΄ μ κ·Όν μ μλ€.
int val = (new NodeData()).getIntValue();
λͺ μμ μΌλ‘ μ§μ μ κ·Όμ λͺ»νμ§λ§ 묡μμ μΌλ‘ μ μΈνκ±Έ μμμ²λΌ μ κ·Όμ΄ κ°λ₯νλ€.
μ¦, μμλ³μλ‘ μ κ·Όν μλ μμ§λ§ κ°μ μ μΌλ‘ μ κ·Όμ΄ κ°λ₯ν κ²μ΄λ€.
2) ν¨μμ 리ν΄κ°μΌλ‘ μμλ³μ μ¬μ©
public static NodeData test()
{
return new NodeData(); // μλ‘μ΄ λ
Έλλ°μ΄ν°λ₯Ό λ§λ€κ³ μ°Έμ‘°κ°μ 리ν΄ν¨
}
int a = (test()).getIntValue();
System.out.println(a);
ν¨μμμ 리ν΄ν λ μμλ³μλ₯Ό μ¬μ©ν΄μ testλ₯Ό λΆλ₯΄λ©΄ 리ν΄μΌλ‘λΆν° μ€λ μ°Έμ‘°κ°μ ν΅ν΄ μμλ³μλ₯Ό μ²λ¦¬ν μ μλ€.
3) ν¨μμ νλΌλ―Έν°λ‘ μμλ³μ μ¬μ©
System.out.println((test()).getIntValue());
μμλ³μλ₯Ό λ§λ€μ΄μ testλ₯Ό λ§μ§ μ μμΌλ©°, κ±°κΈ°μ getIntValue()μ κ°μ μμλ³μμ λ£κ³ κ·Έ λ³μλ₯Ό λ μμλ³μμ λ£μλ€μμ μ½μλ‘ μ°μ κ²μ΄λ€.
'μλ > κ΅λΉμ§μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[D+56] μλ°νλ‘κ·Έλλ°2 (ν΄λμ€μ μΈμ€ν΄μ€, ν¨ν€μ§) (0) | 2022.12.09 |
---|---|
[D+56] μλ°νλ‘κ·Έλλ°1 (μ€ν νλ¦ μ μ΄, λ©μλμ λ³μμ μ€μ½ν) (0) | 2022.12.08 |
[D+54] νλ©΄ μ€κ³ (0) | 2022.12.07 |
[D+53] Front-end λ―Έλνλ‘μ νΈ 9μΌμ°¨ : 리μ½λ© μμ± (0) | 2022.12.06 |
[D+52] Front-end λ―Έλνλ‘μ νΈ 8μΌμ°¨ : μΉμ μμ± (0) | 2022.12.05 |
λκΈ