๊ธฐ๋ณธ ์๋ฃํ
JAVA์ ๊ธฐ๋ณธ ์๋ฃํ(Primitive Types)์ ๋ค์ 8๊ฐ์ง์ด๋ค
| ์ข ๋ฅ | ์๋ฃํ | ํฌ๊ธฐ | ์์ |
|---|---|---|---|
| ์ ์ํ | byte |
1 byte | -128 ~ 127 |
short |
2 bytes | -32,768 ~ 32,767 | |
int |
4 bytes | -2^31 ~ 2^31-1 | |
long |
8 bytes | -2^63 ~ 2^63-1 | |
| ๋ฌธ์ํ | char |
2 bytes | '\u0000' ~ '\uffff' (์ ๋์ฝ๋) |
| ์ค์ํ | float |
4 bytes | 32bit ๋ถ๋์์์ |
double |
8 bytes | 64bit ๋ถ๋์์์ | |
| ๋ ผ๋ฆฌํ | boolean |
1bit(๋ ผ๋ฆฌ์ ์๋ฏธ) | true / false |
- ์ด์ธ์ ์๋ฃํ์ ๋ชจ๋ ์ฐธ์กฐํ์ด๋ค.
- ์ค์ ๋ค์ f๊ฐ ๋ถ์ด์์ผ๋ฉด float, ์์ผ๋ฉด double
- ์๋ฐ๋ 5๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ฌ๋ฆผ์ด๋ค.(5์ด์ ์ฌ๋ฆผ, IEEE 754 ํ์ค)
var
JAVA 10๋ถํฐ ๋์ ๋ ์ง์ญ ๋ณ์ ํ์ ์ถ๋ก ํค์๋๋ค.
- ํ๋ฒ ์ด๊ธฐํ๋ ํ์ ์ ์ปดํ์ผ ํ์์ ๊ณ ์ (์๋ฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ํ์ ์ธ์ด์ด๊ธฐ ๋๋ฌธ)
- JS์ฒ๋ผ ๋ง ๋ฐ๋์ง ์๋๋ค.
var a = 10; // int๋ก ์ถ๋ก ๋จ a = "hello"; // โ ์ปดํ์ผ ์๋ฌ
๋ฌต์์ ํ๋ณํ
๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ฒ์ -> ํฐ ๋ฒ์๋ก ์๋ ํ๋ณํ์ด ๋ฐ์

long์ 8byte๊ณ float๋ 4byte์ธ๋ฐ ์ ๋ ํฌ๋ค๊ณ ์ธ์๋๋๊ฐ?
=> ์ด๋ long์ ํํ ๋ฐฉ์๊ณผ float์ ํํ๋ฐฉ์์ ์ฐจ์ด๊ฐ ๋์ ๊ทธ๋ ๋ค.
long(์ ์ ํํ)์ ์ฒซ 1bit๋ฅผ ๋ถํธ๋ก, ๋๋จธ์ง๋ ์ซ์๋ฅผ ํํํ๋ bit๋ก ์ฌ์ฉ๋๋ค.
๋ฐ๋ฉด float(๋ถ๋์์์ ๋ฐฉ์)๋ ๋ถํธ 1bit + ์ง์ 8bit + ์ซ์ 23bit๋ก ๊ธฐ๋ก๋๊ณ , ์ง์๋ ์ฐ๋ฆฌ๊ฐ ์๋ ์ ๊ณฑ์ด๋ค.
=> ์ซ์ * 2^n์ผ๋ก ๊ธฐ๋กํ๋ค๋ ์๋ฆฌ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก float์ ๋ฒ์๋ long๋ณด๋ค ์ปค์ง๊ฒ ๋๊ณ ๋ฌต์์ ํ๋ณํ์ด ๊ฐ๋ฅํด์ง๋ ๊ฒ์ด๋ค.
์: Float.MAX_VALUE ≈ 3.4 * 10^38 > Long.MAX_VALUE ≈ 9.2 * 10^
String
String์ ๊ฐ์ฒด(์ฐธ์กฐํ)์ด๋ฉฐ, ๋ถ๋ณ์ด๋ค.(๋ฌธ์์ด ๊ณต์ ์ค, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ์ํ์ด ์๋ค๋ ๊ฒ์ด ์ฅ์ )
String str = "Hello";
str += " World"; // ์๋ก์ด ๋ฌธ์์ด ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ str์ด ๊ทธ๊ฒ์ ์ฐธ์กฐํจ
String str1 = null; // str1์ ์๋ฌด ๊ฐ์ฒด๋ ์ฐธ์กฐ ํ์ง ์์๋ค.
String str2 ; // ์ ์ธ๋ง ํจ, ์ด๊ธฐ๊ฐ์ด ์์ => ์ฌ์ฉ ์ ์ด๊ธฐํ ํ์
str1๊ณผ str2๋ ๋ค๋ฅด๋ค.
- str1 = null;
- ์ ์ + ์ด๊ธฐํ ์๋ฃ
- str1์ ๋ช ์์ ์ผ๋ก "์๋ฌด ๊ฐ์ฒด๋ ์ฐธ์กฐํ์ง ์์(null)"์ ๊ฐ๋ฆฌํด.
- ์ฐธ์กฐํ ๋ณ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ด๋๋ฐ, ์ด ๊ฒฝ์ฐ ์ฃผ์๊ฐ ๋์ null ๋ฆฌํฐ๋ด์ ๊ฐ์ง๊ณ ์์.
- ์ฆ, "์๊ณ ๋ ์์ผ๋ ์๋ฌด ๊ฒ๋ ๊ฐ๋ฆฌํค์ง ์์" ์ํ์.
=> ์ด ์ํ์์ str1.length() ๋ฑ ํธ์ถํ๋ฉด NullPointerException ๋ฐ์.
- String str2;
- ๋ณ์๋ ์ ์ธ๋์์ง๋ง ์ด๊ธฐํ๋์ง ์์
- ์ด ์ํ๋ก๋ ์ปดํ์ผ์กฐ์ฐจ ์ ๋จ (์ง์ญ ๋ณ์ ๊ธฐ์ค)
- ์ฆ, "์์ง ์ด๋ค ๊ฐ๋ ๋ถ์ฌ๋ ์ ์์" ์ํ์
- ์๋ฐ๋ ์ง์ญ ๋ณ์์ ๋ํด ์ด๊ธฐํ๋ฅผ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์, str2๋ฅผ ๊ทธ๋๋ก ์ฐ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํจ.
| ๊ตฌ๋ถ | ์๋ฏธ | ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ | ์์ธ ์ฌ๋ถ |
|---|---|---|---|
str1 = null; |
๋ช ์์ null ์ฐธ์กฐ | ์ฌ์ฉ ๊ฐ๋ฅ (์ปดํ์ผ ๊ฐ๋ฅ) | ๋ฐํ์์ NPE ๋ฐ์ ๊ฐ๋ฅ |
String str2; |
์ ์ธ๋ง ๋จ (์ด๊ธฐํ ์ ๋จ) | ์ฌ์ฉ ๋ถ๊ฐ๋ฅ (์ปดํ์ผ ์๋ฌ) | ์์ธ ์ ์ ์ปดํ์ผ ์คํจ |
Wrapper Class
์๊น ๋์จ ๊ธฐ๋ณธ ์๋กํ์ ๊ฐ์ฒด๋ก ํฌ์ฅํ Wrapper Class๊ฐ ์๋ค.
- ์๋ฐ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ ์ธ์ด์ด๊ณ , ์ฌ๋ฌ ๊ณณ์์ ๊ฐ์ฒด๋ก ํ์ ์ ๋ค๋ค์ผ ํ๋ ์ํฉ ๋ฐ์(ex: ์ปฌ๋ ์ , ์ ๋ค๋ฆญ)
- ๊ธฐ๋ณธํ → ๊ฐ์ฒด๋ก ํฌ์ฅํ๋ ๊ฒ(Boxing)
- ๊ฐ์ฒด → ๊ธฐ๋ณธํ ๊ฐ์ผ๋ก ๊บผ๋ด๋ ๊ฒ(UnBoxing)
- JAVA 5 ๋ถํฐ ์๋ ๋ฐ์ฑ/์ธ๋ฐ์ฑ์ ์ง์
| ๊ธฐ๋ณธํ | ๋ํผ ํด๋์ค |
|---|---|
int |
Integer |
byte |
Byte |
short |
Short |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JAVA] ์ฝ๋ ์ธ ์์ฑํ ๊ฒ๋ค (0) | 2024.07.17 |
|---|---|
| [JAVA] ์์ (0) | 2024.07.17 |
| [JAVA] ๊ฐ์ฒด (0) | 2024.07.16 |
| [JAVA] ์๋ฃ๊ตฌ์กฐ (0) | 2024.07.15 |
| [JAVA] ์๋ฐ ์ ๋ฌธ (0) | 2024.07.10 |