λ³μ μ΄μΌκΈ°(2) - μλ°μ νμ (μλ£ν)
μλ νμΈμ,
μ΄λ² μκ°μλ μλ°μ λκ°μ§ μλ£νμ λν΄ μμλ³΄κ² μ΅λλ€.
ν΄λΉ λ΄μ©μ 'μλ°μ μ ' chapter4λ₯Ό κΈ°μ΄λ‘ μμ±νμΌλ©°,
μ΄λ₯Ό κΈ°λ°μΌλ‘ μ λλ¦μ μμ½ μ 리λ₯Ό ν κΈμ λλ€.
μμΈν 곡λΆλ₯Ό μν΄μλ
λ¨Όμ μ± μ μ½κ³ , μ 리μ©μΌλ‘ μ°Έκ³ νμλ©΄ λ² μ€νΈμΌ κ² κ°μ΅λλ€!
λ³μμ μ’ λ₯μ μ΄λ¦ μ μ κ·μΉμ λν λ΄μ©μ μ΄μ κ²μκΈμ νμΈνμλ©΄ λ©λλ€ :)
https://mong-dev.tistory.com/10
λ³μ μ΄μΌκΈ°(1) - μλ°μ 4κ°μ§ λ³μ
μλ νμΈμ, λͺ½λ°λΈμ λλ€. μ€λμ μλ°μ λ³μμ λν΄ μ΄μΌκΈ° ν΄λ³ΌκΉν©λλ€. ν΄λΉ λ΄μ©μ 'μλ°μ μ ' chapter4λ₯Ό κΈ°μ΄λ‘ μμ±νμΌλ©°, μ΄λ₯Ό κΈ°λ°μΌλ‘ μ λλ¦μ μμ½ μ 리λ₯Ό ν κΈμ λλ€. μμΈν
mong-dev.tistory.com
μλ°μ λ κ°μ§ μλ£ν
- κΈ°λ³Έ μλ£ν(Primitive data type)
- μ°Έμ‘° μλ£ν(Reference data type)
μλ°μλ μμ κ°μ΄ λκ°μ§ μλ£νμ΄ μμ΅λλ€. μ΄ λκ°μ§μ μ°¨μ΄λ 무μμΌκΉμ?
int a = 10; //κΈ°λ³Έ μλ£ν
Calculator calc = new Calculator(); //μ°Έμ‘° μλ£ν
κΈ°λ³Έ μλ£νμ intλ₯Ό μ΄κΈ°νν λμ κ·Έλ₯ κ°μ λ°λ‘ μ μ΄ μ£Όμκ³ , Calculatorλ₯Ό μ΄κΈ°νν λμλ newλΌλ μμ½μ΄λ‘ μμ±μ νκ³ μμ΅λλ€.
- newλ‘ μ΄κΈ°ν ν΄μΌλ§ νλ κ², μΆκ°λ‘ λ§λ€ μ μλ€. : μ°Έμ‘° μλ£ν
- λ°λ‘ μ΄κΈ°νκ° κ°λ₯ν κ², μΆκ°λ‘ λ§λ€ μ μλ€. : κΈ°λ³Έ μλ£ν
* λ€λ§, Stringμ κ²½μ°λ μ°Έμ‘° μλ£νμ΄μ§λ§, μμΈμ μΌλ‘ newλ₯Ό μ¬μ©ν΄μ κ°μ²΄λ₯Ό μμ±νμ§ μμλ λλ€.
ex)
String bookName1 = "God Of Java";
String bookName1 = new String("God Of Java");
κ·Έλ λ€λ©΄, μλ°μμ μ ν΄μ Έ μλ κΈ°λ³Έ μλ£νμ λν΄ μ’ λ μμ보λλ‘ νκ² μ΅λλ€.
ν΄λΉ λ΄μ©μ μ 리 μμ½λ³Έμ΄λ―λ‘, νμ΄ μ€λͺ νκΈ°λ³΄λ€ κ²°λ‘ μ ν λμ 보기 μ½λλ‘ νλ‘ μ 리νμ΅λλ€.
κΈ°λ³Έ μλ£ν
νν | μ’ λ₯ | λ²μ | νΉμ§ | κΈ°λ³Έκ° |
μ μν | byte | -128 ~ 127 (-2β· ~ 2β·-1) |
- μ μ 곡κ°μ λ³΄λ€ λ§μ λ΄μ©μ μ μ₯νκΈ° μν¨ | 0 |
short | -32,768 ~ 32,767 (-2¹β΅ ~ 2¹β΅-1) |
- byteλ‘ νννκΈ°λ λΆμ‘±νκ³ , intλ‘ νννκΈ°μλ λ무 κ³΅κ° λλΉκ° μ¬νλ€κ³ μκ° ν λ μ¬μ©νλ€. | 0 | |
int | -2,147,483,648 ~ 2,147,483,647 (-2³¹ ~ 2³¹-1) |
- μ£Όλ‘ λ§μ΄ μ¬μ©νλ μ μν | 0 | |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-2βΆ³ ~ 2βΆ³-1) |
- intλ§μΌλ‘ λΆμ‘±ν λ μ¬μ© - μ μΈν λ λλλ‘ Lμ λΆμ¬μ£Όλ κ²μ΄ μ’λ€. κ·Έλ μ§ μμΌλ©΄ κ·Έλ₯ intλ‘ μΈμλλ€. |
0 | |
char (μΊλ¦ν°) | 0('\u0000') ~ 65,535('\uffff') (0 ~ 2¹βΆ-1) |
- μ μΌν unsigned(λΆνΈκ° μλ) - μ μλ₯Ό ν λ '(νλ°μ΄ν)λ₯Ό μ¬μ©νλ€. ex) char - 'a'; |
'\u0000' | |
μμν | float | - | - μμμ μ μ²λ¦¬νκ³ μΆμ λ - λλμΌλ‘ μμμ μ리μκ° μ μ λ°μ΄ν°λ₯Ό μ μ₯ν κ²½μ° - λΆνΈ(1μ리) + μ§μ(8μ리) + κ°μ(23μ리) = 32λΉνΈ |
0.0 |
double | - | - μμμ μ μ²λ¦¬νκ³ μΆμ λ - μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ© - λΆνΈ(1μ리) + μ§μ(11μ리) + κ°μ(52μ리) = 64λΉνΈ |
0.0 | |
κΈ°ν | boolean | true, false | false |
λ²μμ λμ€λ μ«μλ€μ΄ 볡μ‘ν΄ λ³΄μΌ μ μμ§λ§, 0κ³Ό 1λ‘ λνλ΄λ 2μ§λ²μ΄ μ»΄ν¨ν°μμ μ«μλ₯Ό ννν λ κ°μ₯ μ μ νλ€λ μ¬μ€μ κ³ λ €ν΄λ³Έλ€λ©΄ μ½κ² μ΄ν΄λ₯Ό ν μ μμ΅λλ€. κ·Έλμ λͺ¨λ μλ°μ μ«μ νμ λ€μ΄ 2μ λ°°μλ‘ λ²μκ° μ ν΄μ§λ κ²μ λλ€.
char ννλ₯Ό μ μΈν λλ¨Έμ§ μ§μ λΆλΆμ μ«μλ§ λ³Έλ€λ©΄, 7, 15, 31, 63μ λ³Ό μ μλλ°, μ΄λ 2μ nμ κ³± - 1 λ‘ ννν μ μμ΅λλ€. κ·Έλ¦¬κ³ nμ 3λΆν° μμνκ³ μμ΅λλ€. μ¦, 7(8-1), 15(=16-1), 31(=32-1), 63(64-1)μ λλ€. "κ° νμ μ΄ λνλΌ μ μλ μ«μμ λ²μκ° 2λ°°μ© μ¦κ°λλ€."κ³ κΈ°μ΅νλ©΄ λκ² μ΅λλ€.
byteλ 8λΉνΈμ λΆνΈκ° μλ(signed) νμ μ λλ€. 8λΉνΈλΌλ κ²μ 0κ³Ό 1λ‘ ννν μ μλ 곡κ°μ΄ 8κ°κ° μλ€λ λ§μ΄κ³ , 1λ°μ΄νΈλΌκ³ λΆλ₯΄κΈ°λν©λλ€.
μ μ byteμ λ²μλ₯Ό 보μλ©΄, -128 ~ 127λΌκ³ λμμλκ²μ λ³Ό μ μλλ° μ¬κΈ°μ νκ°μ§ μλ¬Έμ μ κ°μ§ μ μμ΅λλ€.
κ·Έλ¦Όμ ν΅ν΄ νμΈν΄ λ³΄κ² μ΅λλ€.
2β· | 2βΆ | 2β΅ | 2β΄ | 2³ | 2² | 2¹ | 2β° |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
κ° κ³΅κ°μ΄ λͺ¨λ 1λ‘ μ±μμ§κ² λλ€λ©΄, 2β·X1 + 2βΆX1 + 2β΅X1 + 2β΄X1 + 2³X1 + 2²X1 + 2¹X1 + 2β°X0 = 255 λΌλ μ«μκ° λμ€λλ°, byteμ λ²μλ λ°ν λ§μ΄ λ μλ κ²μ λ³Ό μ μμ΅λλ€. λ€μ μκΉ νλ μ΄μΌκΈ°λ‘ λμκ°μλ©΄, μλ°μ κΈ°λ³Έ μλ£νμ ν¬ν¨λ μ«μλ€μ charλ₯Ό μ μΈνκ³ λ λͺ¨λ λΆνΈκ° μλ signed νμ λλ€. byteμ 곡κ°μ 8κ°μΈλ°, μμμ μμλ₯Ό μ΄λ»κ² ννμ ν΄μΌνλμ§μ λν κ³ λ―Όμ λ΅μ΄ μ¬κΈ° μμ΅λλ€. "맨 μμ μλ κ°μ΄ 0μ΄λ©΄ μμ, 1μ΄λ©΄ μμ"λ‘ μ ν κ²μ λλ€. μ¦, κ°μ₯ μΌμͺ½μ 곡κ°μ 2β·μ΄ μλλΌ κ·Έλ₯, μμμ μμλ₯Ό ꡬλΆνκΈ° μν 곡κ°μ λλ€.
λ€μ λ§ν΄μ, 2βΆX1 + 2β΅X1 + 2β΄X1 + 2³X1 + 2²X1 + 2¹X1 + 2β°X0 = 127 μ΄ λλ κ²μ λλ€.
κ·Έλ°λ° μ μμλ -128κΉμ§μΈκ°? λΌλ μλ¬Έμ΄ μμ°μ€λ½κ² λ€κ² λ©λλ€.
2βΆ | 2β΅ | 2β΄ | 2³ | 2² | 2¹ | 2β° | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
μ§κΈκΉμ§ μ΄ν΄λ³Έ λ°μ μνλ©΄, λ λ€ κ°μ΄ 0μ΄λΌκ³ μκ°ν κ²μ λλ€. νμ§λ§ λ°μ μλ 맨 μμλ§ 1μΈ byteμ κ°μ 0μ΄ μλλΌ -128μ λλ€. λ€μ λ§ν΄μ byte, short, int, long νμ μ κ°μ₯ μμ κ°λ§ 1μΈ κ²μ ν΄λΉ νμ μ μ΅μκ°μ΄κ³ , λ λ²μ§Έ κ°λΆν° 1λ‘ μ±μμ Έ μλ κ²μ ν΄λΉ νμ μ μ΅λκ°μ΄ λ©λλ€. κ·Έλ¦¬κ³ , μ λκ°λ§μΌλ‘ λ°μ§λ©΄, μ΅μκ°μ μ λκ°μ΄ μ΅λκ°μ μ λκ°λ³΄λ€ λ± 1μ΄ λ ν½λλ€. (μ΄λ¬ν μ΄μ λ λ€μμ λΉνΈ μ°μ°μλ₯Ό λ°°μΈ λ λ€μ 보λλ‘ νκ² μ΅λλ€.)
floatμ doubleμ λ²μλ₯Ό μκΈ° μν΄μλ 볡μ‘ν μν 곡μμ μμμΌνλλ°, μ΄λ μλ΅νλλ‘ νκ² μ΅λλ€.
λ€λ§ floatλ double κ°μ κ²½μ°λ, λ κ³μ°κ³Ό κ°μ΄ μ νμ±μ μꡬνλ μν©μμ μ¬μ©νλ©΄ μλ©λλ€. μ΄λ κ°κ° 32λΉνΈμ 64λΉνΈλ‘ μ 곡ν μ μλ λ²μλ₯Ό λμ΄μ€ κ²½μ°, κ·Έ κ°μ μ νμ±μ 보μ₯νμ§ λͺ»νκΈ° λλ¬Έμ λλ€. μ΄λ° κ²½μ°μλ java.math.BigDecimalμ΄λΌλ ν΄λμ€λ₯Ό μ¬μ©ν΄μΌλ§ ν©λλ€. (λμ€μ λ€λ£° κΈ°νκ° μμΌλ©΄ λ€λ€λ³΄κ² μ΅λλ€ :) )
λ§μ§λ§μΌλ‘, charμ λν΄ λͺκ°μ§λ§ μ΄μΌκΈ° νκ³ λ§λ¬΄λ¦¬νκ³ μ ν©λλ€.
charμ κ°μ μ§μ νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ 3κ°μ§μ λλ€.
- νλ°μ΄ν μμ μ§μ 'a'μ κ°μ΄ κ·Έ κ°μ λ£λλ€.
- '\u0000'κ³Ό κ°μ΄ νλ°μ΄ν μμ \uμ 16μ§μ κ°μ λ£λλ€.
- ν΄λΉ κ°μ μ λμ½λ λ²νΈλ₯Ό μ§μ νλ€.(λ¨, κ·Έ λ²νΈλ char λ²μ λ΄μ μ«μ, μ¦ 0!65,636 μ¬μ΄μ¬μΌ νλ€.)
Quiz
λ€μ μ€, μλͺ» μ μν charλ₯Ό μ°Ύμ보μΈμ.
1. char a = 'a';
2. char b = 'ab';
3. char c = 'κ°';
4. char d = '\u97';
5. char e = ''\u1188;
6. char f = -1;
7. char g = 999;
Answer
1. char a = 'a'; O
2. char b = 'ab'; X charμ νλ°μ΄ν μμ \uλ‘ μμνμ§ μλ μ΄μ λ κ°μ λ¬Έμλ μ¬ μ μλ€.
3. char c = 'κ°'; O νκΈμ λλΆλΆ 2λ°μ΄νΈλ‘ νννλ©°, μ λμ½λμ ν¬ν¨λμ΄ μλ€. μ¬μ©ν μ μλ€. ('κ°' -> 44032)
4. char d = '\u97'; X \u λ€μλ λ°λμ 4κ°μ 16μ§μ κ°μ΄ μμΌλ§ νλ€.
5. char e = ''\u1188; O
6. char f = -1; X charλ μλ°μ μ μν μ€ μ μΌν λΆνΈκ° μλ(unsigned) κ°μ΄λ€.
7. char g = 999; O
κ°μ¬ν©λλ€ :)