2021. 2. 23. 06:00γκ°λ μ 리 μμ μ€/Java
π 2021λ 02μ 17μΌ κ³΅λΆ λ΄μ©
π Native Application
C, C++, Rust λ±μΌλ‘ λ§λ Application μ€μ λ°λ‘ μ€ν κ°λ₯ν Appμ λ§ν©λλ€.
κ°μ²΄ μ§ν₯ μΈμ΄λ€μ λλΆλΆ Virtual Machineμ΄ μ€κ°μ κ»΄ μλ μν μ λλ€. μ¦, OSμ μΈμ΄κ° μ€κ°μ μν μ ν΄μ£Όκ³ μμ£ !
π μ»΄ν¨ν° λ¨μ
1 bit => 2μ§μ 1μ리λ₯Ό λνλΌ μ μλ λ²μ.
1 byte => 8bit μ¦, 8κ°μ 2μ§μλ₯Ό λνλΌ μ μλ λ²μ.
1 word => 4byte μ¦, 32κ°μ 2μ§μλ₯Ό λνλΌ μ μλ λ²μ.
π λ³μ μ μΈ
μ μΈ μ 곡μ: [μλ£ν Type][λ³μλͺ ]
λ³μλ μ½κ² λ§ν΄ κ°μ μ μ₯νλ 곡κ°(μμ)λΌκ³ μκ°νμλ©΄ λλ©°, νλμ κ°λ§ μ μ₯ν μ μμ΅λλ€.
κΈ°λ³Έν(Primitive): νλ‘κ·Έλλ° μΈμ΄μμ 미리 μ ν κ² μ λλ€.
λ³μμ κ°μ μ μ₯νλ κ²μ λ λ€λ₯Έ λ§λ‘ λμ νλ€κ³ λΌκ³ ν©λλ€. λμ μ°μ°μ [ = ]μ μ¬μ©νμ¬, μΌμͺ½ λ³μμ μ€λ₯Έμͺ½ κ° (리ν°λ΄ νΉμ μμλΌκ³ λ ν¨)μ μ μ₯ν©λλ€.
- μ΄λ¦μ΄ μλ μμλ 무μμΌκΉμ? λμ μ°μ°μ μνλ λ³μλ₯Ό λ§ν©λλ€.
κ°(μμ νΉμ 리ν°λ΄)μ 보면 λ³μμ μλ£νμ κ²°μ ν μ μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ μΈμνλ κ°μ μ’ λ₯λ μλμ κ°μ΅λλ€.
- boolean(λ Όλ¦¬ν): True, Falseμ κ²°κ³Όκ°μ΄ λμ΅λλ€.
- byte(μ μν): 8bitμ κ°μ μ μ₯ν μ μμ΅λλ€.
- short(μ μν): 16bit (2byte)λ₯Ό μ μ₯ν μ μμ΅λλ€.
- int(μ μν): 32bit (4byte)λ₯Ό μ μ₯ν μ μμΌλ©°, μλ£ν Type μ μν μ€ κΈ°λ³Έν μ λλ€.
- long(μ μν): 64bit (8byte)λ₯Ό μ μ₯ν μ μμ΅λλ€.
- float(μ€μν): 32bit (4byte)λ₯Ό μ μ₯ν μ μμ΅λλ€.
- double(μ€μν) 64bit (8byte)λ₯Ό μ μ₯ν μ μμΌλ©°, μλ£ν Type μ€μν μ€ κΈ°λ³Έν μ λλ€.
- char(λ¬Έμν): 16bit (2byte)λ₯Ό μ μ₯ν μ μμΌλ©°, μλ£ν Type λ¬Έμν μ€ κΈ°λ³Έν μ λλ€.
- Reference(μ°Έμ‘°ν): Classνμ΄λΌκ³ νλ©°, 첫 κΈμλ λλ¬Έμλ‘ νν λ©λλ€. λνμ μΌλ‘ Spring(λ¬Έμμ΄)μ΄ μμ΅λλ€.
float ff = 10.33F;
// float μλ£νμ μ μΈνκ³ , ffλ λ³μλͺ
μ
λλ€. ffμ 10.33F μ¬κΈ°μ Fλ floatλ₯Ό λνλ΄λ©°, floatλ μ€μνμ κΈ°λ³Ένμ΄ μλκΈ° λλ¬Έμ 리ν°λ΄ λ€μ κΌ λΆν μ£Όμ
μΌ ν©λλ€.
long il = 100;
// μ΄λ κ² μ μΈνλ©΄ 100μ΄λΌλ μλ₯Ό int μ¦, μ μλ‘ λ³΄κ² λ©λλ€.
// μ μν μλ£νμΈ intλ longλ³΄λ€ μ μ₯ν μ μλ λ©λͺ¨λ¦¬ μ©λμ΄ μμ΅λλ€.
// κ·Έλ κΈ° λλ¬Έμ Exceptionμμ΄ μλ ν λ³νμ ν΅ν΄ μ μ₯ λ©λλ€.
long il = 100L;
// μ΄ ννμ longμ΄λΌλ μλ£νμ κ°μ§ ilμ΄λΌλ λ³μμ 100μ΄λΌλ μ μλ₯Ό λ΄κ² λ€λ κ²μΈλ°,
// 100 λ€μ Lμ΄ λΆμ κ²μ Longμ΄ μ μν λ³μμ κΈ°λ³Ένμ΄ μλκΈ° λλ¬Έμ λΆνμ€μΌ ν©λλ€.
π μ μλ?
κΈ°λ³Έμ μΌλ‘ μ μλΌκ³ ν¨μ μμ§μλ₯Ό λ»ν©λλ€.
μμμ 0X λΌλ μ λλ₯Ό μ μΌλ©΄ 16μ§λ²μ λνλ λλ€.
μ¦, 0X10; dms 16μ§λ² 10μ λνλ λλ€!
int n = 0X10;
System.out.println(n)
// μ΄ κ²°κ³Ό μΆλ ₯λλ κ°μ μμ§μ κ°μ΄ μΆλ ₯ λ©λλ€.
System.out.println(Integer.toHexString(n));
// μ΄λ κ² μΆλ ₯νλ©΄ 16μ§μ κ°μ΄ κ²°κ³Όλ‘ μΆλ ₯ λ©λλ€.
System.out.println(Integer.toBinaryString(n));
// μ΄λ κ² μΆλ ₯νλ©΄ 8μ§μ κ°μ΄ κ²°κ³Όλ‘ μΆλ ₯ λ©λλ€.
μμμ 0μ΄λΌλ μ λλ₯Ό μ μΌλ©΄ 8μ§λ²μ λνλ λλ€. 010; μ΄λΌλ κ²μ 8μ§λ² 10μ λνλ λλ€.
λν, μμμ 0BλΌκ³ μ λλ₯Ό μ μΌλ©΄ 2μ§λ²μ λνλ λλ€. 0B10;μ 2μ§λ² 10μ λνλ λλ€.
π λΉνΈμ°μ°μ
2μ§μ μ°μ°μλ₯Ό λ»νλ©°, μ΄κ²μ μ¬μ©νλ©΄ μμ Integer.toBinaryString(λ³μλͺ ); ν¨μλ₯Ό μ¬μ©ν΄μΌ νΈν κ² μ λλ€.
π μ½λ μμ±λ²
1. java νμΌμμ± (Class)
2. μλ μ°Έκ³
// μλλ₯Ό Class μ μ λΌκ³ ν©λλ€.
public class [classλͺ
] {
// μ΄ μμ μ€ννλ €λ λ΄μ©μ μμ± ν©λλ€.
}
π ν¨μλ?
μ²λ¦¬μ λ¨μ(κΈ°λ₯): νλ‘κ·Έλ¨μ λ§λ€κΈ° μν λΆν(λͺ¨λ) μ΄λΌκ³ λΉμ ν©λλ€.
μ¦, λ§λ‘ νννμλ©΄ λμ¬μ νννλ κ²μ νλ κ²μ΄λΌκ³ ν μ μλλ°, μλ₯Ό λ€μ΄ ~μ νμΈμ, ~ μμ§μ¬λΌ λ±λ±μ ν¨μλ‘ ννν μ μμ΅λλ€.
ν¨μμ μ μ νΉμ ν¨μμ ꡬν 곡μμ μλμ κ°μ΅λλ€.
[λ°νμλ£ν] [ν¨μλͺ
(맀κ°λ³μ νΉμ Argument λλ μΈμλΌκ³ ν¨)] {
}
Scanner input new Scnner();
String keyboard = input.nextInt();
// μ΄κ²μ ScannerλΌλ ν¨μλ₯Ό μλ‘ λ§λ€κ²μΈλ°, μ΄λ¦μ inputμ΄λΌκ³ ν κ±°μΌ.
// κ·Έ inputμ΄λΌλ ν¨μ μμ nextInt(); ν¨μλ₯Ό μ΄μ©ν΄μ ν€λ³΄λ μ
λ ₯κ°μ μ μλ‘ λ°μ λ¬Έμμ΄ μλ£ν λ³μ keyboardμκ² λ£μ κ²μ΄μΌ.
// μ΄λ° μλ―Έ μ
λλ€.
μ¬κΈ°μ λ°ν μλ£νμ '무μμ λ°ν' μΈλ°, λ°νν λ΄μ©μ΄ μλ€λ©΄ ν¨μ μμ returnμ΄ λμμΌ νκ³ , λ°ν μλ£νμ λ§λ κ°μ μ μ΄μ€μΌ ν©λλ€.
ν¨μλͺ μ '~ν¨μ', 맀κ°λ³μλ ' ~ μ λ¬ λ°λ'μ΄λΌκ³ ννν μ μκ³ , μν κ°μ κ³³μ μ΄λ°μμΌλ‘ λμ¨λ€κ³ νλ€μ!
κ·ΈλΌ λλ체 Methodλ 무μμΌκΉμ? Methodλ Class μμ μλ ν¨μλ₯Ό λ§ν©λλ€. κ²°κ΅ Javaλ λͺ¨λ Class μμμ μ€ν λ΄μ©μ μ μν μ μκΈ° λλ¬Έμ λͺ¨λ ν¨μλ MethodλΌλ κ²μ΄μ§μ. λλλ‘ ν¨μ λ§κ³ , MethodλΌκ³ νννλ κ²μ΄ λ ν·κ°λ¦¬μ€ κ² κ°μ΅λλ€!
ν¨μ λ§λ€κΈ° μμ
public static void main (String[] args) {
// μλ£ν νμ
μ΄ μ μμΈ todoλΌλ ν¨μλ μ λ¬κ°μ΄ main Methodμ μΈμκ° argsλ₯Ό λ°μ λ¬ΈμνμΌλ‘ μ λ¬νλ ν¨μλ₯Ό λ§λ λ€.
int todo(char args);{
// intνμΌλ‘ μλ£νμ λ§λ€μκΈ° λλ¬Έμ λ°νκ°μ int κ°μ λ§λ μ μνμΌλ‘ μ€μΌ νλ€.
return 0;
}
}
Class μμ ν¨μλ₯Ό μ μνκ³ , ν¨μ μμλ μ€νν λ΄μ©μ μμ±νλ κ² μ λλ€.
κ·ΈλΌ ν¨μλ₯Ό μ μνλ μλ Ήμ 무μμ΄ μμκΉμ?
μ€ν(νΈμΆ) μν€λ λ°©λ²μ λ¨Όμ κ²°μ νλ κ²μ΄ μ’λ€κ³ ν©λλ€!
λν, ν¨μ(Method)λ ν¨μ(Method)μμ μ μν μ μμ΅λλ€. mainλ MethodμΈ κ² μμμ£ ? κ·Έλ κΈ° λλ¬Έμ main μμ ν¨μλ λ§λ€ μ μμ΅λλ€.
π Eclipse
π νλ‘κ·Έλ¨ μ€νλ²
μ½μμμ μ€ν μ main Methodκ° κΌ μμ΄μΌ ν©λλ€.
Eclipse λ΄μ Run asλ₯Ό ν΅ν΄ java applicationμΌλ‘ μ€ν ν©λλ€.
π μμ μ°Έκ³ μ¬ν
κΉλνκ² OSμμ μ§μ°κ³ μΆμ λλ eclipse.ini νμΌμμ μ μΈ κ²½λ‘ μμ λͺ¨λ νμΌμ μμ ν΄ μ£Όμλ©΄ λ©λλ€.
π‘ μν!
μ λ, μ λ―Έλ? μ λ(머리)λ μ§λ²μ λν κ²μ μ΄μΌκΈ° νλ©°, μ λ―Έ(꼬리)λ μλ£νμ λν κ²μ μ΄μΌκΈ° νλ€κ³ νλ€μ!
μΆλ ₯μ νλ €λ©΄ μ΄λμ (νλ©΄) 무μμ (μ΄λ€ κ°)μ΄ κΌ μμ΄μΌ ν©λλ€!
// μμ
System.out.println(μΆλ ₯νλ €λ λ³μλͺ
);
// ()μμ κ°μ μΈμλΌκ³ λΆλ₯΄λ©°, μΈμλ ν¨μμκ² κ°μ μ λ¬νλ€κ³ μ΄ν΄νλ©΄ λ©λλ€!
System.out.printlnμμ Systemμ μ»΄ν¨ν° μ체λ₯Ό μ΄μΌκΈ°νκ³ , κ·Έ μμ outμ μ½μμ μΆλ ₯ μ₯μΉ μ¦, λͺ¨λν°λ₯Ό λ»νλ κ²μ΄λ©°, . (μ )μ 'μμ' λΌλ μλ―Έμ΄λ©°, κ·Έ μμ printλ₯Ό νλλ° ln (Line) λ¨μλ‘ ν΄λΌ λΌλ μλ―Έ μ λλ€.
μ¦, 'μ»΄ν¨ν° μμ μΆλ ₯ μμ μλ Printλ₯Ό μ΄μ©ν΄μ, Line λ¨μλ‘ Printν΄λΌ'λ‘ νμ΄ μΈ μ μκ² λ΄μ!
'κ°λ μ 리 μμ μ€ > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μλ°μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object-Oriented Programming) (0) | 2021.02.28 |
---|---|
[Java] λ°°μ΄μ κΈ°μ΄ (0) | 2021.02.23 |
[Java] Memory, Driverκ°λ , ν΄μκΈ°μ λ²μκΈ°, SDK, JDK κ°λ (0) | 2021.02.22 |
[λΆλ‘][JAVA] Random / Scanner ν¨μ (0) | 2021.02.10 |
[λΆλ‘][JAVA] νΌνκ³ λΌμ€μ μΌκ°ν (0) | 2021.02.09 |