๊ธฐ๋ณธํ๊ณผ ๊ฐ์ฒดํ์ ํ ๋ณํ
๊ธฐ๋ณธํ(int) → ์ฐธ์กฐํ(Integer)
- Boxing (๋ช
์์ ) :
Integer iw = Integer.valueOf(i); - Auto-boxing(์๋ ๋ฐ์ฑ):
Integer iw2 = i;
์ฐธ์กฐํ(Integer) → ๊ธฐ๋ณธํ(int)
- Unboxing (๋ช
์์ ): ``int i2 =
iw.intValue(); - Auto-unboxing(์๋ ์ธ๋ฐ์ฑ):
int i3 = iw;
๊ธฐ๋ณธํ(int) → ๋ฌธ์์ด(String)
- ๋ฌธ์์ด๋ก ๋ณํ:
String s1 = String.valueOf(i); - ๋ฌธ์์ด ๊ฒฐํฉ ๋ฐฉ์:
String s2 = "" + i;
๋ฌธ์์ด(String) → ๊ธฐ๋ณธํ(int)
- ๋ฌธ์์ด์ int๋ก ํ์ฑ:
int i4 = Integer.parseInt(s1);
๋ฌธ์์ด(String) → ์ฐธ์กฐํ(Integer)
- ๋ฌธ์์ด → Integer ๊ฐ์ฒด:
Integer iw3 = Integer.valueOf(s4);
์ฐธ์กฐํ(Integer) → ๋ฌธ์์ด(String)
- ์ฐธ์กฐํ ๊ฐ์ฒด → ๋ฌธ์์ด:
String s3 = iw.toString(); - ๋ฌธ์์ด ๊ฒฐํฉ ๋ฐฉ์:
String s4 = "" + iw;
์๋ฐ ๊ธฐ๋ณธํ ํ์ ๊ฐ์ ์๋ ํ ๋ณํ(๋ฌต์์ ํ ๋ณํ)
์์ ํํ ๋ฒ์ → ํฐ ํํ ๋ฒ์ ๋ก ๊ฐ ๋๋ ๋ฌต์์ ํ๋ณํ(์๋ ๋ณํ)์ด ๊ฐ๋ฅํ๋ค.
byte → short → int → long → float → double
↑
char (๋ถํธ ์์)
char
- ๋ด๋ถ์ ์ผ๋ก๋ ์ ์๊ฐ(UTF-16 ์ฝ๋) ์ ์ฅ
- 2๋ฐ์ดํธ(16๋นํธ) ํฌ๊ธฐ
- โ ๋ถํธ๊ฐ ์๋ค (unsigned) → 0 ~ 65535 ๋ฒ์
| ํ์ | ํฌ๊ธฐ | ๋ถํธ | ๊ฐ์ ๋ฒ์ |
|---|---|---|---|
| byte | 8bit | โ signed | -128 ~ 127 |
| short | 16bit | โ signed | -32,768 ~ 32,767 |
| char | 16bit | โ unsigned | 0 ~ 65535 |
char๋ short์ ํฌ๊ธฐ๋ ๊ฐ์ง๋ง, ํํ ๋ฒ์๋ ๋ ๋๋ค.
๊ทธ๋์ short → char์ ์๋ ๋ณํ โ (๋ถํธ ์ฒ๋ฆฌ ์๋จ),
๋ฐ๋๋ก char → int๋ ์๋ ๋ณํ โญ
char → int, char → long, char → float, char → double : โ
์๋ ํ๋ณํ ๊ฐ๋ฅshort → char : โ ๋ช
์์ ์บ์คํ
ํ์
์ฐ์ ์ฐ์ฐ๊ณผ ํ์ ์๋ ํ ๋ณํ(๋ฌต์์ ํ ๋ณํ)์ ์๋ ์๋ฆฌ
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2; // Type mismatch: cannot convert from int to byte
int i1 = 10;
long l1 = 20;
int i2 = i1 + l1; // Type mismatch: cannot convert from long to int
float f1 = 10.0f;
float f2 = f1 + 20.0; // Type mismatch: cannot convert from double to float
๋ชจ๋ ์๋ฌ๋ ํ์ ๋ถ์ผ์น(Type mismatch) ๋๋ฌธ์ ๋ฐ์. ์ปดํ์ผ ์๋ฌ๋ก ์คํ๋์ง ์์.
byte b3 = b1 + b2;
- ๋ฌธ์ : b1 + b2๋ ๋ ๊ฐ์ byte์ง๋ง, ์ฐ์ ์ฐ์ฐ ์ ์๋์ผ๋ก int๋ก ๋ณํ
- b1 + b2์ ๊ฒฐ๊ณผ๋ int → ์ด๋ฅผ ๋ค์ byte์ ๋์ ํ๋ ค๊ณ ํ๋ ํ์ ๋ถ์ผ์น(type mismatch) ์๋ฌ ๋ฐ์
byte b3 = (byte)(b1 + b2); // ๋ช
์์ ํ๋ณํ ํ์
int i2 = i1 + l1;
- i1์ int, l1์ long์ด๋ฏ๋ก → ์ฐ์ฐ ๊ฒฐ๊ณผ๋ long
- int์ long ๊ฐ์ ๋์ ํ๋ ค๊ณ ํ๋ ์ปดํ์ผ ์๋ฌ
int i2 = (int)(i1 + l1); // ํ๋ณํ (๋จ, ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ ์์)
float f2 = f1 + 20.0;
- 20.0์ double ๋ฆฌํฐ๋ด
- f1์ด float, 20.0์ด double → ์ฐ์ฐ ๊ฒฐ๊ณผ๋ double
- float์ double ๊ฐ์ ๋์ ํ๋ ค ํ๋ ํ์ ๋ถ์ผ์น ์๋ฌ
float f2 = f1 + 20.0f; // ๋ฆฌํฐ๋ด์ float์ผ๋ก ๋ง์ถฐ์ค์ผ ํจ'๐ Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Java] String ๊ด๋ จ ๋ฉ์๋ (1) | 2025.07.27 |
|---|---|
| [Java] ์ปดํ์ผ ์๋ฌ vs ๋ฐํ์ ์๋ฌ (1) | 2025.07.27 |
| [Java] ์ฐ์ ์ฐ์ฐ ์ ์ฃผ์ํ ์ ๋ค (2) | 2025.07.27 |
| [Java] ๋ฐ๋ณต๋ฌธ ํ์ (0) | 2025.07.27 |
| [Java] String (2) | 2025.07.27 |