πŸ“˜ λ³€μˆ˜μ™€ νƒ€μž… _ Chap 02

🏷️ Tags: Java, λ³€μˆ˜, κΈ°λ³Ένƒ€μž…, νƒ€μž…λ³€ν™˜, μž…μΆœλ ₯, Week1


βœ… ν•™μŠ΅ λ‚΄μš©

  • λ³€μˆ˜ μ„ μ–Έ κ·œμΉ™ κΈ°μ–΅ν•˜κΈ°
  • κΈ°λ³Έ νƒ€μž… 8개 ꡬ뢄 κ°€λŠ₯ν•˜κΈ°
  • μžλ™/κ°•μ œ νƒ€μž… λ³€ν™˜ 흐름 이해
  • λ¬Έμžμ—΄ 포함 μ—°μ‚° μ£Όμ˜μ‚¬ν•­ μˆ™μ§€
  • println vs printf 차이 μ•ŒκΈ°



β€”

πŸ”€ 02-1 λ³€μˆ˜

βœ… (1) λ³€μˆ˜ 이름 μž‘μ„± κ·œμΉ™

  • μ‚¬μš©ν•  수 있음: 문자, 숫자, $, _
  • 첫 κΈ€μžμ—λŠ” 숫자 ❌
  • μ˜ˆμ•½μ–΄ 및 곡백 ❌

βœ… (2) λ³€μˆ˜ μ‚¬μš© λ²”μœ„ (μŠ€μ½”ν”„)

  • λ³€μˆ˜λŠ” μ„ μ–Έλœ 블둝 λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯
  • 블둝 μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό μ‹œ 였λ₯˜ λ°œμƒ

βœ… (3) κΈ°λ³Έ νƒ€μž…

μžλ°”μ˜ κΈ°λ³Έ νƒ€μž…μ€ 총 8개둜 ꡬ성됨:

  • μ •μˆ˜ νƒ€μž… (5개): byte, char, short, int, long
  • μ‹€μˆ˜ νƒ€μž… (2개): float, double
  • 논리 νƒ€μž… (1개): boolean

❌ String은 κΈ°λ³Έ νƒ€μž…μ΄ μ•„λ‹ˆλ‹€! (μ°Έμ‘° νƒ€μž…)


🚨 κΈ°λ³Έ νƒ€μž… μ‚¬μš© μ‹œ μ£Όμ˜μ‚¬ν•­

1️⃣ long νƒ€μž…: 큰 수 μ‚¬μš© μ‹œ 숫자 뒀에 L λ˜λŠ” l 뢙이기

long num = 2147483648L; // L ν•„μˆ˜

2️⃣ char νƒ€μž…

  • 문자 1개만 μ €μž₯ κ°€λŠ₯
  • μž‘μ€ λ”°μ˜΄ν‘œ(β€˜ β€˜) μ‚¬μš©
  • μœ λ‹ˆμ½”λ“œλ₯Ό μ €μž₯ν•˜λŠ” μ •μˆ˜ νƒ€μž…μœΌλ‘œ μ·¨κΈ‰λ˜κΈ°λ„ 함

πŸ“Œ char β†’ int μžλ™ λ³€ν™˜ μ˜ˆμ‹œ:

char c = 'A';
int code = c;
System.out.println(code); // 좜λ ₯: 65

3️⃣ float νƒ€μž…: μ‹€μˆ˜ λ¦¬ν„°λŸ΄ 뒀에 F (λ˜λŠ” f) 뢙이기

float pi = 3.14F;

πŸ” 02-3 νƒ€μž… λ³€ν™˜

βœ… (1) μžλ™ νƒ€μž… λ³€ν™˜

  • μž‘μ€ νƒ€μž… β†’ 큰 νƒ€μž…μœΌλ‘œ μžλ™ λ³€ν™˜
λ³€ν™˜ μˆœμ„œ byte < short < int < long < float < double

βœ… (2) μ •μˆ˜ μ—°μ‚°μ—μ„œμ˜ μžλ™ νƒ€μž… λ³€ν™˜ μ£Όμ˜μ‚¬ν•­

  • byte, short β†’ μ—°μ‚° μ‹œ μžλ™μœΌλ‘œ int둜 λ³€ν™˜λ¨
  • μ„œλ‘œ λ‹€λ₯Έ νƒ€μž… μ—°μ‚° μ‹œ β†’ 더 큰 νƒ€μž…μœΌλ‘œ μžλ™ λ³€ν™˜
byte a = 10;
byte b = 20;
int result = a + b; // λ°˜λ“œμ‹œ int둜 λ°›μ•„μ•Ό 함

πŸ“Œ long + int β†’ intκ°€ long으둜 μžλ™ λ³€ν™˜λ¨

πŸ“Œ λ¬Έμžμ—΄ 포함 μ‹œ 전체가 λ¬Έμžμ—΄λ‘œ λ³€ν™˜λ¨

System.out.println(3 + "7");    // "37"
System.out.println("10" + 2 + 8); // "1028"
System.out.println("10" + (2 + 8)); // "1010"

βœ… (3) κ°•μ œ νƒ€μž… λ³€ν™˜ (Casting)

  • 큰 λ²”μœ„ β†’ μž‘μ€ λ²”μœ„λ‘œ λ³€ν™˜ μ‹œ λͺ…μ‹œμ  ν˜•λ³€ν™˜ ν•„μš”
double a = 1.9;
int b = (int) a; // 좜λ ₯: 1 (μ†Œμˆ˜μ  버림)

βœ… (4) λ¬Έμžμ—΄ β†’ κΈ°λ³Έ νƒ€μž… λ³€ν™˜

String str = "10";
int num = Integer.parseInt(str);
double d = Double.parseDouble("3.14");

βœ… (5) κΈ°λ³Έ νƒ€μž… β†’ λ¬Έμžμ—΄ λ³€ν™˜

int score = 100;
String str = String.valueOf(score);

πŸ–¨οΈ 02-4 λ³€μˆ˜μ™€ μ‹œμŠ€ν…œ μž…μΆœλ ₯

πŸ“Œ print vs println vs printf

λ©”μ†Œλ“œ μ„€λͺ…
print μ€„λ°”κΏˆ 없이 좜λ ₯
println 좜λ ₯ ν›„ μžλ™ μ€„λ°”κΏˆ
printf ν˜•μ‹ μ§€μ •μžλ₯Ό μ‚¬μš©ν•΄ 포맷 좜λ ₯ κ°€λŠ₯
System.out.print("hello");       // hello
System.out.println("world");     // hello↡world
System.out.printf("%d + %d = %d", 3, 5, 8); // 3 + 5 = 8

πŸ’‘ μΆ”κ°€ μ˜ˆμ‹œ: νƒ€μž… λ³€ν™˜ ν€΄μ¦ˆ

문제: λ‹€μŒ μ½”λ“œμ˜ 좜λ ₯ κ²°κ³ΌλŠ”?

System.out.println("10" + 2 + 3);
System.out.println(2 + 3 + "10");

μ •λ‹΅:

1023
510

μ„€λͺ…: λ¬Έμžμ—΄μ΄ μ•žμ— 였면 이후도 λ¬Έμžμ—΄λ‘œ 처리됨. 숫자끼리 λ¨Όμ € μ—°μ‚°λ˜λ©΄ 숫자 μ—°μ‚° ν›„ λ¬Έμžμ—΄ κ²°ν•©.