์์ ํ์
, ๊ธฐ๋ณธํ(Primitive Type)
๐ ํน์ง
- ์ด 8๊ฐ์ง์ ํ์
์กด์ฌ
- ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ์ ์ฅํ๋ค.
- ์ฌ์ฉํ๊ธฐ ์ ์ ๋ฐ๋์ ์ ์ธ๋์ด์ผ ํ๋ค.
- ๋น๊ฐ์ฒด ํ์
์ผ๋ก null ๊ฐ์ ๊ฐ์ง ์ ์๋ค. ๋ง์ฝ Primitive type์ Null์ ๋ฃ๊ณ ์ถ๋ค๋ฉด Wrapper Class๋ฅผ ํ์ฉํ๋ค.
- Stack์ ์ ์ฅ๋๋ค.
๐ ์ข
๋ฅ
- ๋
ผ๋ฆฌํ (boolean): true์ false ์ค ํ๋๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง
- ๋ฌธ์ํ (char): ํ๋์ ๋ฌธ์๋ง ์ ์ฅ ๊ฐ๋ฅ
- ์ ์ํ (byte, short, int, long)
- ์ค์ํ (float, double)
1byte (8bit) | 2byte (16bit) | 4byte (32bit) | 8byte (64bit) | |
๋ ผ๋ฆฌ ํ | boolean | |||
๋ฌธ์ ํ | char | |||
์ ์ ํ | byte | short | int | long |
์ค์ ํ | float | double |
๊ฐ์ ๋ฒ์: -2^n-1 ~ 2^n-1 -1 (n์ bit ์)
๋ ผ๋ฆฌํ - boolean
true, false๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ๊ฐ์ false์ด๋ค.
์๋ฐ๋ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ณ๋๊ธฐ ๋๋ฌธ์ True, False๋ ๋ถ๊ฐ๋ฅ
์ค์ ๋ก๋ 1bit๋ฉด ์ถฉ๋ถํ์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ต์ ๋จ์๊ฐ 1byte์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ 1byte์ด๋ค.
๋ฌธ์ํ - char
๋จ ํ๋์ ๋ฌธ์ ๋ง์ ์ ์ฅํ ์ ์๋ค.
char ch = 'A';
char ch = 65;
char ch = 'A';๋ ๋ณ์์ ๋ฌธ์๊ฐ ์ ์ฅ๋๋ ๊ฒ ๊ฐ์ง๋ง, ์ฌ์ค์ ๋ฌธ์์ ์ ๋์ฝ๋(์ ์)๊ฐ ์ ์ฅ๋๋ค.
๋ฐ๋ผ์ ์์ ๋ ๋ฌธ์ฅ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค.
์ ์ํ (byte, short, int, long)
๐ก byte(1) < short(2) < int(4) < long(8)
โญ byte
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํฌ๊ธฐ : 1byte (8bit)
์ ์ฅ๋๋ ๊ฐ์ ๋ฒ์ : -128 ~ 127
1byte(8bit)์ ๊ณต๊ฐ ์ค ๊ฐ์ฅ ์ข์ธก์ ์ต์์๋นํธ(๋ถํธ๋นํธ)๋ฅผ ์ ์ธํ๊ณ ๋๋จธ์ง 7๊ฐ์ ๋นํธ์ 0๊ณผ 1๋ก ์ด์ง์ ํํ์ด ๊ฐ๋ฅํ๋ค. ๊ฐ์ฅ ์ข์ธก์ ์ต์์ ๋นํธ๊ฐ 0์ด๋ฉด ์์๋ก, 1์ด๋ฉด ์์๋ก ์ธ์ํ๋ค.
โญ short
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํฌ๊ธฐ : 2byte(16bit)
์ ์ฅ๋๋ ๊ฐ์ ๋ฒ์ : -32,768 ~ 32,767
JVM์ ํผ์ฐ์ฐ์ ์คํ(Operand Stack)์ด ํผ์ฐ์ฐ์๋ฅผ 4Byte ๋จ์๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๊ฐ 4byte๋ณด๋ค ์์ ์๋ฃํ(byte, short)์ ๊ฐ์ ๊ณ์ฐํ ๋๋ 4byte๋ก ๋ณํํ์ฌ ์ฐ์ฐ์ด ์ํ๋๋ค.
๋ฐ๋ผ์ ์คํ๋ ค intํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค.
โญ long
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํฌ๊ธฐ : 8byte(64bit)
์ ์ฅ๋๋ ๊ฐ์ ๋ฒ์ : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
long ํ์ ์ int ํ์ ์ ์ ์ฅ ๋ฒ์๋ฅผ ๋์ด์๋ ์์น๊ฐ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ๋๋ค.
์ค์ํ (float, double)
โญ float
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํฌ๊ธฐ : 4Byte(32bit)
์ ์ฅ๋๋ ๊ฐ์ ๋ฒ์ : -3.4E+38 ~ 3.4E+38
์ค์๋ ์ ์์ ๋ฌ๋ฆฌ ๋ถ๋ ์์์ ๋ฐฉ์์ผ๋ก ์ ์ฅ๋๋ค.
์ค์ ํ์ float, double์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๊ฐ๊ฐ ์ ์ ํ์ int, long๊ณผ ๊ฐ์ง๋ง, ๋ถ๋ ์์์ ๋ฐฉ์์ผ๋ก ์ ์ฅ๋์ด ๋ ํฐ ๋ฒ์์ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
์๋ฐ์์ ์ค์์ ๊ธฐ๋ณธ ํ์ ์ doubleํ์ด๋ฏ๋ก floatํ์๋ ์ํ๋ฒณ F๋ฅผ ๋ถ์ฌ์ float ํ์์ ๋ช ์ํด์ฃผ์ด์ผ ํฉ๋๋ค.
โญ double
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํฌ๊ธฐ : 8byte(64bit)
์ ์ฅ๋๋ ๊ฐ์ ๋ฒ์ : -1.7E+308 ~ 1.7E+308
float ํ์ ์ ์์์ ์๋ 9์๋ฆฌ๊น์ง๋ง ํํํ ์ ์๋ ๋ฐ๋ฉด, double ํ์ ์ ์์์ ์๋ 18์๋ฆฌ ๊น์ง ํํ์ด ๊ฐ๋ฅํด ์ข ๋ ์ ๋ฐํ ํํ์ด ๊ฐ๋ฅํ๋ค.
์ฐธ์กฐ ํ์
(Reference Type)
๐ ํน์ง
- ๊ฐ์ฒด(Object)์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค.
- 8๊ฐ์ ๊ธฐ๋ณธํ์ ์ ์ธํ ๋๋จธ์ง ํ์
- JAVA์์ ์ต์์ธ java.lang.Objectํด๋์ค๋ฅผ ์์ํ๋ ๋ชจ๋ ํด๋์ค๋ค์ ๋งํ๋ค. new๋ก ์ธํ์ฌ ์์ฑํ๋ ๊ฒ๋ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ธ Heap ์์ญ์ ์์ฑ์ ํ๊ฒ ๋๊ณ , Garbage Collector๊ฐ ๋๋ฉด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ค.
- ํด๋์ค ํ์
(class type) , ์ธํฐํ์ด์ค ํ์
(interface type) , ๋ฐฐ์ด ํ์
(array type) , ์ด๊ฑฐ ํ์
(enum type)์ด ์๋ค.
- ๋น ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ null์ด ์กด์ฌํฉ๋๋ค.
- ๋ฌธ๋ฒ์์ผ๋ก๋ ์๋ฌ๊ฐ ์์ง๋ง ์คํ์์ผฐ์ ๋ ์๋ฌ๊ฐ ๋๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์ฒด๋ ๋ฐฐ์ด์ null ๊ฐ์ผ๋ก ๋ฐ์ผ๋ฉด NullPointException์ด ๋ฐ์ํ๋ฏ๋ก ๋ณ์ ๊ฐ์ ๋ฃ์ด์ผ ํ๋ค.
- Heap ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋ ์ธ์คํด์ค๋ ๋ฉ์๋๋ ๊ฐ์ข
์ธํฐํ์ด์ค์์ ์ ๊ทผํ๊ธฐ ์ํด JVM์ Stack ์์ญ์ ์กด์ฌํ๋ Frame์ ์ผ์ข
์ ํฌ์ธํฐ(C์ ํฌ์ธํฐ์๋ ๋ค๋ฆ
๋๋ค.)์ธ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์์ด ์ด๋ฅผ ํตํด ์ธ์คํด์ค๋ฅผ ํธ๋ค๋งํฉ๋๋ค.
๊ธฐ๋ณธํ์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ ํด๋น ๊ธ์ ์ฐธ๊ณ ๋ฐ๋๋๋ค.
2-4์ฅ ๊ธฐ๋ณธํ
1. ๋ ผ๋ฆฌํ - boolean true, false๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ๊ธฐ๋ณธ ๊ฐ์ false์ด๋ค. ์๋ฐ๋ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ณ๋๊ธฐ ๋๋ฌธ์ True, False๋ ๋ถ๊ฐ๋ฅ 2. ๋ฌธ์ํ - char ๋จ ํ๋์ ๋ฌธ์ ๋ง์ ์ ์ฅํ ์ ์๋ค. char ch = 'A'; char ch =
hyeon-z.tistory.com
Reference
Primitive type & Reference type
'๐กCS > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] equals()์ hashCode()(+ ๋์ผ์ฑ, ๋๋ฑ์ฑ) (0) | 2023.06.09 |
---|---|
[Java] Call by value vs Call by reference (0) | 2023.06.08 |
์ ๊ทผ ์ ์ด์(private, default, protected, public) (0) | 2023.06.07 |
ํด๋์ค, ๊ฐ์ฒด, ์ธ์คํด์ค๋? (0) | 2023.06.07 |
Java์ ๋์ ์๋ฆฌ (0) | 2023.06.07 |
๋๊ธ