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)

 1 / 2 => 0

 1 / 2. => 0.5

-> ์‹ค์ˆ˜ํ˜•์œผ๋กœ type์„ ์ผ์น˜ ์‹œํ‚ด (1์„ 1.0์œผ๋กœ)

โ€‹ => ์ •์ˆ˜ํ˜•์—์„œ ์‹ค์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ์—†์œผ๋ฏ€๋กœ ์ž๋™์œผ๋กœ type promotion ์ผ์–ด๋‚จ

ex 2)

int a = 1 + 1;   = 2

String b = โ€œ1โ€ + โ€œ1โ€;  = โ€œ11โ€         

String c = 1 +1 + 1 + โ€œ1โ€  = โ€œ31โ€

-> ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ํƒ€์ž…์„ 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