Data Types
1. PDT (Primitive Data Type)
๋ฐ์ดํฐ ๊ทธ ์์ฒด๊ฐ ๋ค์ด๊ฐ ์๋ ํ์
๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ => ๋ฑ 8๊ฐ๋ฟ!
๊ธฐ์ต ๊ณต๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ก ์์
. (dot) ์ฐ์ฐ์
๋ฅผ ์ธ ์ ์์ => why? ์ฃผ์๊ฐ ์๋๋ผ์!
1. ๋
ผ๋ฆฌํ
boolean
: 1bit
(true/false) -> JAVA๋ 0,1 ํ์ฉํ์ง ์์
2. ๋ฌธ์ํ
char
: 2byte
ex) โaโ -> ๋ฌธ์ ํ๋๋ง ๊ฐ๋ฅ
=> single quotation(โโ) ์ฌ์ฉ!! -> ASCII code ๊ฐ์ผ๋ก ์ ์ฅ๋จ
+
byte == 8bit (1 byte) == -128 ~127
3. ์ ์ํ
Short
: 16 bit (2 byte)
Int
: 32bit (4 byte) => ์ ์ํ์ ๊ธฐ๋ณธ์ Int
Long
: 64bit (8 byte)
4. ์ค์ํ
float
: 32bit (4 byte)
Double
: 64bit (8 byte) => ์ค์ํ์ ๊ธฐ๋ณธ์ Double
-> ์์ 8๊ฐ ์ ์ธํ๊ณ ๋ ๋ค Reference Type!!!!!
2. Reference Type
์ฃผ์๊ฐ ๋ค์ด๊ฐ ์๋ ํ์
: ์ฐธ์กฐ ๋ฐ์ดํฐ ํ
๊ธฐ์ต ๊ณต๊ฐ์ ์ฃผ์๊ฐ ๋ค์ด๊ฐ๊ณ ์ฃผ์๋ฅผ ์ฐพ์ ๋ค์ด๊ฐ์ผ์ง๋ง ์ค์ง์ ์ธ ๋ฐ์ดํฐ๊ฐ ์์
. (dot) ์ฐ์ฐ์
์ธ ์ ์์!! ex) ์ฃผ์.Referenceํ์์๋ String ๋นผ๊ณ ๋ ๋ค new ์จ์ผํจ
String์ ๊ธฐ๋ณธํ์ฒ๋ผ ์ธ ์๋ ์๊ณ , new ์ธ ์๋ ์์!!
New๋ Heap์์ญ์ ์ฌ๋ผ๊ฐ
๊ธฐ๋ณธํ ์ฒ๋ผ ์ฐ๋ฉด new๊ฐ ์๋ ๋ค๋ฅธ ์์ญ์ ์ฌ๋ผ๊ฐ => ์ด๊ฒ ๋ฐ์ดํฐ ์๋ชจ๊ฐ ์ ์!
ex) String address = new String(โ๋นํธ์บ โ); -> new ์ผ์ ๋
โ String address = โ๋นํธ์บ โ; -> ๊ธฐ๋ณธํ์ฒ๋ผ ์ผ์ ๋
String์ immutableํ (๋ถ๋ณ์) ๊ฐ์ฒด์ด๋ค!
-> ๊ทธ๋์ String ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด String Builder๋ String Buffer๋ฅผ ์จ์ผ ํจ
Buffer
= temporary ํ ๊ธฐ์ต๊ณต๊ฐ (์์ ๊ณต๊ฐ)
null ๊ฐ
= ์ฐธ์กฐํ์์ ์ฃผ์๊ฐ ์๋๊ฒ์ ๋ช ์์ ์ผ๋ก ์๋ ค์ฃผ๋ ๊ฐ
ex) now = null;
Java๋ ์ฐ์ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก type์ ์ผ์น์ํค๋ ค๊ณ ํจ!!
ex 1)
-> ์ค์ํ์ผ๋ก type์ ์ผ์น ์ํด (1์ 1.0์ผ๋ก)
โ => ์ ์ํ์์ ์ค์ํ์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์์ ๋ฐ์ดํฐ ์์ค์ด ์์ผ๋ฏ๋ก ์๋์ผ๋ก type promotion
์ผ์ด๋จ
ex 2)
-> ๊ฒฐ๊ณผ๊ฐ์ด ๋ฌธ์์ด์ด๋ฏ๋ก ํ์ ์ String์ผ๋ก ์ ์ธํจ
โ => ๊ฒฐ๊ณผ ๊ฐ์ด ๋ฌด์์ด๋์ ๋ฐ๋ผ ํ์ ์ด ๋ฌ๋ผ์ง๋ค!
char type & int type
char type
์ int type
์ผ๋ก ์๋ promotion์ด ๋ฐ์ํจ!
=> but, int๋ฅผ char๋ก ๋ฐ๊พธ๋ ค๋ฉด type casting์ ํด์ผํจ
-> why? ๋ฐ์ดํฐ ์๋ชจ๊ฐ ์๊ธฐ ๋๋ฌธ!
โ : char 2 byte < int 4 byte
ํฐ ์ฌ์ด์ฆ์์ ์์ ์ฌ์ด์ฆ๋ก ๊ฐ๋ ค๋ฉด ๋ฐ์ดํฐ ์๋ชจ๊ฐ ์์ผ๋ฏ๋ก type casting์ ํด๋ผ!
(์ ๋ฆฌ)
ํฐ ์ฌ์ด์ฆ -> ์์ ์ฌ์ด์ฆ => ๋ฐ์ดํฐ ์๋ชจ ์์ โ Type Casting
์์ ์ฌ์ด์ฆ -> ํฐ ์ฌ์ด์ฆ => ๋ฐ์ดํฐ ์๋ชจ ์์ โ Promotion
(Type Promotion in JAVA)
Last updated