-
λ³μ μ΄μΌκΈ°(2) - μλ°μ νμ (μλ£ν)κ°λ°/Java 2022. 3. 17. 20:16
μλ νμΈμ,
μ΄λ² μκ°μλ μλ°μ λκ°μ§ μλ£νμ λν΄ μμλ³΄κ² μ΅λλ€.
ν΄λΉ λ΄μ©μ 'μλ°μ μ ' chapter4λ₯Ό κΈ°μ΄λ‘ μμ±νμΌλ©°,
μ΄λ₯Ό κΈ°λ°μΌλ‘ μ λλ¦μ μμ½ μ 리λ₯Ό ν κΈμ λλ€.
μμΈν 곡λΆλ₯Ό μν΄μλ
λ¨Όμ μ± μ μ½κ³ , μ 리μ©μΌλ‘ μ°Έκ³ νμλ©΄ λ² μ€νΈμΌ κ² κ°μ΅λλ€!
λ³μμ μ’ λ₯μ μ΄λ¦ μ μ κ·μΉμ λν λ΄μ©μ μ΄μ κ²μκΈμ νμΈνμλ©΄ λ©λλ€ :)
https://mong-dev.tistory.com/10
μλ°μ λ κ°μ§ μλ£ν
- κΈ°λ³Έ μλ£ν(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κ°μ¬ν©λλ€ :)
'κ°λ° > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ€μ²©ν΄λμ€(Nested class)λ 무μμΈκ°? (0) 2022.04.07 μ°Έμ‘° μλ£ν - κΈ°λ³Έ μμ±μ, μ€λ²λ‘λ©(overloading), return (0) 2022.03.21 λ³μ μ΄μΌκΈ°(1) - μλ°μ 4κ°μ§ λ³μ (1) 2022.03.17 Collection(1) - List, Set, Map (2) 2022.02.22 μ κ·Όμ μ΄μ(access modifier)λ? (0) 2022.02.20