1. ํ์ ์บ์คํ
๊ธฐ๋ณธ ์ ํ์ ๋ณ์(์ ํ ์ ์ธ boolean
)๋ ๋ค์ํ ์ ํ์ ์ซ์๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ณ์์ ์ ํ์ ์ ๋ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ํ ์ ํ์์ ๋ค๋ฅธ ์ ํ์ผ๋ก ๋ณํํ ์ ์๋ ๊ณณ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฅ์๋ ํ ๋น ์
๋๋ค .
์๋ก ๋ค๋ฅธ ์ ํ์ ๋ณ์๋ฅผ ์๋ก ํ ๋นํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ ์ ํ์ ๋ณ์ ๊ฐ์ด ๋ค๋ฅธ ์ ํ์ ๊ฐ์ผ๋ก ๋ณํ๋์ด ๋ ๋ฒ์งธ ๋ณ์์ ํ ๋น๋ฉ๋๋ค. ์ด์ ๊ด๋ จํ์ฌ ๋ ์ข ๋ฅ์ ์ ํ ๋ณํ์ ์๋ณํ ์ ์์ต๋๋ค. ํ๋ ๋ฐ ์ถ์์ ๋๋ค.
ํ๋๋ ์์ ๋ฐ๊ตฌ๋์์ ํฐ ๋ฐ๊ตฌ๋๋ก ๊ฐ์ ์ด๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ด ์์ ์ ๋งค๋๋ฝ๊ณ ๊ณ ํต์ด ์์ต๋๋ค. ์ถ์๋ ํฐ ๋ฐ๊ตฌ๋์์ ์์ ๋ฐ๊ตฌ๋๋ก ๊ฐ์ ์ด๋ํ ๋ ๋ฐ์ํฉ๋๋ค. ๊ณต๊ฐ์ด ์ถฉ๋ถํ์ง ์์ ์ ์์ผ๋ฉฐ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฒ๋ ค์ผ ํฉ๋๋ค.
๋ค์์ ๋ฐ๊ตฌ๋ ํฌ๊ธฐ๋ณ๋ก ์ ๋ ฌ๋ ์ ํ์ ๋๋ค.
2. ์ ํ ๋ณํ ํ๋
ํ ์ซ์ ์ ํ์ ๋ณ์๋ฅผ ๋ค๋ฅธ ์ซ์ ์ ํ์ ๋ณ์์ ํ ๋นํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์ด๋ป๊ฒ ํฉ๋๊น?
Java์๋ 4๊ฐ์ง ์ ์ ์ ํ์ด ์์ต๋๋ค.
์ ํ | ํฌ๊ธฐ |
---|---|
byte |
1 byte |
short |
2 bytes |
int |
4 bytes |
long |
8 bytes |
๋ ์์ ๋ฐ์ค์ผ์ ์ ์ฅ๋ ๋ณ์๋ ํญ์ ๋ ํฐ ๋ฐ์ค์ผ์ ์ ์ฅ๋ ๋ณ์์ ํ ๋น๋ ์ ์์ต๋๋ค.
int
, short
๋ณ์ ๋ฅผ ๋ณ์ byte
์ ์ฝ๊ฒ ํ ๋นํ ์ ์์ต๋๋ค long
. short
๊ทธ๋ฆฌ๊ณ byte
๋ณ์๋ ๋ณ์์ ํ ๋น๋ ์ ์์ต๋๋ค int
. ๊ทธ๋ฆฌ๊ณ byte
๋ณ์๋ ๋ณ์์ ํ ๋น๋ ์ ์์ต๋๋ค short
.
์:
์ํธ | ์ค๋ช |
---|---|
|
์ด ์ฝ๋๋ ์ ์ปดํ์ผ๋ฉ๋๋ค. |
๋ ์์ ์ ํ์์ ๋ ํฐ ์ ํ์ผ๋ก์ ์ด๋ฌํ ๋ณํ์ ํ์ฅ ์ ํ ๋ณํ์ด๋ผ๊ณ ํฉ๋๋ค.
์ค์๋ ์ด๋ป์ต๋๊น?
๋ชจ๋ ๊ฒ์ด ๋์ผํฉ๋๋ค. ํฌ๊ธฐ๊ฐ ์ค์ํฉ๋๋ค.
์ ํ | ํฌ๊ธฐ |
---|---|
float |
4 bytes |
double |
8 bytes |
float
double
์๋ฌด๋ฐ ๋ฌธ์ ์์ด ๋ณ์ ์ ๋ณ์๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค . ๊ทธ๋ฌ๋ ์ ์ ์ ํ์ด ๋ ํฅ๋ฏธ๋กญ์ต๋๋ค.
๋ชจ๋ ์ ์ ๋ณ์๋ฅผ float
๋ณ์์ ํ ๋นํ ์ ์์ต๋๋ค. long
๊ธธ์ด๊ฐ 8๋ฐ์ดํธ์ธ ์ ํ ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค . ๊ทธ๋ฆฌ๊ณ ๋ณ์์ ์ํ๋ ๋ชจ๋ ๋ณ์(์ ์ ๋ณ์ ๋๋ float
๋ณ์) ๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค double
.
์ํธ | ๋ฉ๋ชจ |
---|---|
|
|
์ค์ ์ ํ์ผ๋ก ๋ณํํ๋ฉด ์ ํจ ์๋ฆฟ์๊ฐ ์ถฉ๋ถํ์ง ์์ ์ ๋ฐ๋๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
์ ์์์ ๋ถ๋ ์์์ ์ซ์๋ก ๋ณํํ ๋ ์ซ์์ ํ์ ๋ถ๋ถ์ ๋ฒ๋ ค์ง ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ถ์๋ ๋๋ต์ ์ธ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ผ๋ก ์ดํด๋๋ฏ๋ก ์ด๋ฌํ ํ ๋น ์ฐ์ฐ์ด ํ์ฉ๋ฉ๋๋ค.
3. ์ ํ ๋ณํ ์ถ์
๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ์ด๋ป์ต๋๊น? long
๋ณ์ ์ ๊ฐ์ ํ ๋นํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น int
?
๋ณ์๋ฅผ ๋ฐ๊ตฌ๋๋ก ์์ํด ๋ณด์ญ์์ค. 1, 2, 4, 8๋ฐ์ดํธ ๋ฑ ๋ค์ํ ํฌ๊ธฐ์ ๋ฐ์ค์ผ์ด ์์ต๋๋ค. ์์ ๋ฐ๊ตฌ๋์์ ํฐ ๋ฐ๊ตฌ๋๋ก ์ฌ๊ณผ๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํฐ ๋ฐ๊ตฌ๋์์ ์์ ๋ฐ๊ตฌ๋๋ก ์ด๋ํ ๋ ์ผ๋ถ ์ฌ๊ณผ๊ฐ ์์ค๋ ์ ์์ต๋๋ค.
๋ ํฐ ์ ํ์์ ๋ ์์ ์ ํ์ผ๋ก์ ์ด๋ฌํ ๋ณํ์ ์ถ์ ์ ํ ๋ณํ ์ด๋ผ๊ณ ํฉ๋๋ค . ์ด์ ๊ฐ์ ํ ๋น ์์ ์ ์ํํ ๋ ์ซ์์ ์ผ๋ถ๊ฐ ์ ๋ณ์์ ๋ง์ง ์์ ์ ์์ผ๋ฏ๋ก ํ๊ธฐ๋ ์ ์์ต๋๋ค.
์ ํ์ ์ขํ ๋ ์ฐ๋ฆฌ๋ ์ปดํ์ผ๋ฌ์๊ฒ ์ฐ๋ฆฌ๊ฐ ์ค์๋ฅผ ํ๊ณ ์๋ ๊ฒ์ด ์๋๋ฉฐ ์๋์ ์ผ๋ก ์ซ์์ ์ผ๋ถ๋ฅผ ๋ฒ๋ฆฌ๊ณ ์์์ ๋ช ์์ ์ผ๋ก ์๋ ค์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด typecast ์ฐ์ฐ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ดํธ ์์ ์ ํ ์ด๋ฆ ์ ๋๋ค .
์ด๋ฌํ ์ํฉ์์ Java ์ปดํ์ผ๋ฌ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ typecast ์ฐ์ฐ์๋ฅผ ์ง์ ํ๋๋ก ์๊ตฌํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
(type) expression
์:
์ํธ | ์ค๋ช |
---|---|
|
typecast ์ฐ์ฐ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํด์ผ ํ ๋๋ง๋ค |
์ฌ๊ธฐ์๋ a
์ ๊ฐ์ผ๋ฉฐ 1
์๋ง๋ typecast ์ฐ์ฐ์๋ ๊ณผ์์ฒ๋ผ ๋ณด์ผ ๊ฒ์
๋๋ค. ํ์ง๋ง a
๋ ํฌ๋ฉด ์ด๋จ๊น์?
์ํธ | ์ค๋ช |
---|---|
|
|
๋ฐฑ๋ง์ long
์ ์ ์๋ฒฝํ๊ฒ ๋ง์ต๋๋ค int
. ๊ทธ๋ฌ๋ ๋ณ์์ 100๋ง ๊ฐ๋ฅผ ํ ๋นํ ๋ short
์ฒ์ 2๋ฐ์ดํธ๋ ๋ฒ๋ฆฌ๊ณ ๋ง์ง๋ง 2๋ฐ์ดํธ๋ง ์ ์ง๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ํ ๋นํ ๋ byte
๋ง์ง๋ง ๋ฐ์ดํธ๋ง ๋จ์ต๋๋ค.
์ซ์๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์ด๋๋ ๋ฐฉ์:
์ ํ | ์ด์ง ํ๊ธฐ๋ฒ | ์ญ์ง๋ฒ |
---|---|---|
int |
0b 00000000 00001111 01000010 01000000 | 1000000 |
short |
0b 01000010 01000000 | 16.960 |
byte |
0b 01000000 | 64 |
char
์ ํ
A ๋ char
a ์ฒ๋ผ short
2๋ฐ์ดํธ๋ฅผ ์ฐจ์งํ์ง๋ง ํ๋๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณํํ๋ ค๋ฉด ํญ์ typecast ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋ short
์ ํ์ด ๋ถํธ ์๊ณ ์์ -32,768
๊น์ง ์ ๊ฐ์ ํฌํจํ ์ +32,767
์์ง๋ง ์ ํ์ด ๋ถํธ๊ฐ ์๊ณ ์์ ๊น์ง์ char
๊ฐ์ ํฌํจํ ์ ์๋ค๋ ๊ฒ์
๋๋ค .0
65,535
์์๋ ์ ์ ์ฅํ ์ ์์ง๋ง char
์๋ ์ ์ฅํ ์ ์์ต๋๋ค short
. ๊ทธ๋ฆฌ๊ณ a๋ short
๋ณด๋ค ํฐ ์ซ์๋ฅผ ์ ์ฅํ ์ ์์ง๋ง 32,767
์ด๋ฌํ ์ซ์๋ a์ ์ ์ฅํ ์ ์์ต๋๋ค char
.
4. ํํ์ ์ข ๋ฅ
๋ค๋ฅธ ์ ํ์ ๋ณ์๊ฐ ๋์ผํ ํํ์์ ์ฌ์ฉ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋ ผ๋ฆฌ์ ์ผ๋ก ๋จผ์ ๊ณตํต ์ ํ์ผ๋ก ๋ณํํด์ผ ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ด๋ ๊ฒ?
๋ฌผ๋ก ๋ ํฐ ์ฌ๋์๊ฒ.
Java๋ ํญ์ ๋ ํฐ ์ ํ์ผ๋ก ๋ณํ๋ฉ๋๋ค. ๋๋ต์ ์ผ๋ก ๋งํ๋ฉด ๋จผ์ ์ ํ ์ค ํ๋๋ฅผ ํ์ฅํ ๋ค์ ๋์ผํ ์ ํ์ ๊ฐ์ ์ฌ์ฉํ์ฌ ์์ ์ ์ํํฉ๋๋ค.
an int
๊ณผ a๊ฐ long
์์ ํฌํจ๋ ๊ฒฝ์ฐ the์ ๊ฐ์ด int
a๋ก ๋ณํ๋ long
๋ค์์๋ง ์์
์ด ์งํ๋ฉ๋๋ค.
์ํธ | ์ค๋ช |
---|---|
|
a ๊ฐ a๋ก ํ์ฅ๋๊ณ long ์ถ๊ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. |
๋ถ๋ ์์์ ์ซ์
์ ์์ ๋ถ๋ ์์์ ์ซ์( float
๋๋ double
)๊ฐ ํํ์์ ํฌํจ๋ ๊ฒฝ์ฐ ์ ์๋ ๋ถ๋ ์์์ ์ซ์( float
๋๋ double
)๋ก ๋ณํ๋ ๋ค์์๋ง ์ฐ์ฐ์ด ์ํ๋ฉ๋๋ค.
์์
์ a float
๋ฐ a ๊ฐ ํฌํจ๋ double
๊ฒฝ์ฐ float
๊ฐ ๋ก ๋ณํ๋ฉ๋๋ค double
. ์ค์ ๋ก ์์๋ฉ๋๋ค.
, ๋ฐ ์ ํ์ ์๋ก ์ํธ ์์ฉํ ๋ byte
ํญ์ ๋ก ๋ณํ๋ฉ๋๋ค . ์ ํ์ด ํ์ค ์ ์ ์ ํ์ผ๋ก ๊ฐ์ฃผ๋๋ ๋ฐ์๋ ํ๋นํ ์ด์ ๊ฐ ์์ต๋๋ค .short
char
int
int
byte
a์ a๋ฅผ ๊ณฑํ๋ฉด short
๊ฐ ๋ฉ๋๋ค int
. byte
a์ a๋ฅผ ๊ณฑํ๋ฉด byte
๊ฐ ๋ฉ๋๋ค int
. byte
a ์ a๋ฅผ ๋ํด๋ ๊ฐ byte
๋ฉ๋๋ค int
.
์ด์ ๋ํ ๋ช ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. ์:
์ํธ | ์ค๋ช |
---|---|
|
110 * 120 is 13,200 ์ด๋ฉฐ ๋ค์ ์ ํ์ ์ต๋๊ฐ๋ณด๋ค ์ฝ๊ฐ ํฝ๋๋ค byte .127 |
|
110 + 120 is 230 ์ด๋ฉฐ ๋ค์ ์ ํ์ ์ต๋๊ฐ๋ณด๋ค ์ฝ๊ฐ ํฝ๋๋ค byte .127 |
์ผ๋ฐ์ ์ผ๋ก 8๋นํธ(1๋ฐ์ดํธ) ์ซ์์ 8๋นํธ(1๋ฐ์ดํธ) ์ซ์๋ฅผ ๊ณฑํ๋ฉด 16๋นํธ(2๋ฐ์ดํธ)๋ฅผ ์ฐจ์งํ๋ ์ซ์๊ฐ ๋์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ณด๋ค ์์ ์ ์ ์ ํ์ ๋ชจ๋ ์ฐ์ฐ์ int
ํญ์ ์ฆ์ int
s๋ก ๋ณํ๋ฉ๋๋ค. ์ฆ, ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ค ์์ ์ ํ์ ๋ณ์์ ์ ์ฅํ๋ ค๋ฉด int
ํญ์ ์ ํ ๋ณํ ์ฐ์ฐ์๋ฅผ ๋ช
์์ ์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค.
์:
์ํธ | ์ค๋ช |
---|---|
|
ํํ byte * byte ์int |
|
ํํ byte + byte ์int |
|
ํํ์ byte + int ์ ์
๋๋ค. int ๋ฆฌํฐ๋ด์ ์ ๋๋ค int . |
5. ์ค์ํ ๋์์ค
typecast ์ฐ์ฐ์๋ ์๋นํ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ต๋๋ค.
์ฆ, ์๋ฅผ ๋ค์ด ์์ ์ถ๊ฐ ๋ฐ typecast ์ฐ์ฐ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ typecast๋ ์ถ๊ฐ ์ ์ ์ํ๋ฉ๋๋ค.
์:
์ํธ | ์ค๋ช |
---|---|
|
typecast ์ฐ์ฐ์๋ a ์ด๋ฏธ byte . ์ด ์ฝ๋๋ ์ปดํ์ผ๋์ง ์์ต๋๋ค. |
|
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค. |
ํํ์์ ํ ๊ตฌ์ฑ ์์๊ฐ ์๋๋ผ ์ ์ฒด ํํ์์ ํน์ ์ ํ์ผ๋ก ๋ณํํ๋ ค๋ฉด ์ ์ฒด ํํ์์ ๊ดํธ๋ก ๋ฌถ๊ณ typecast ์ฐ์ฐ์๋ฅผ ์์ ๋์ญ์์ค.
GO TO FULL VERSION