JAVA

[JAVA] ์ž๋ฐ”์˜ ๊ธฐ๋ณธ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž… (๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹)

minseok__ 2024. 11. 4. 23:39

๐Ÿ“š ์„œ๋ก 

์ž๋ฐ”๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋ฉด ๊ธฐ๋ณธ ํƒ€์ž…(Primitive Type)๊ณผ ์ฐธ์กฐ ํƒ€์ž…(Reference Type)์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ž์ฃผ ๋งˆ์ฃผ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ํƒ€์ž…์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์— ์žˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ์ด ๋‘ ํƒ€์ž…์˜ ์ฐจ์ด์ ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ๋ณธ๋ก 

1. ๊ธฐ๋ณธ ํƒ€์ž…(Primitive Type)์˜ ํŠน์ง•

๊ธฐ๋ณธ ํƒ€์ž…์€ ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํƒ€์ž…์˜ ์ข…๋ฅ˜

byte num1 = 1;        // 1๋ฐ”์ดํŠธ
short num2 = 2;       // 2๋ฐ”์ดํŠธ
int num3 = 3;         // 4๋ฐ”์ดํŠธ
long num4 = 4L;       // 8๋ฐ”์ดํŠธ
float num5 = 5.5f;    // 4๋ฐ”์ดํŠธ
double num6 = 6.6;    // 8๋ฐ”์ดํŠธ
char char1 = 'A';     // 2๋ฐ”์ดํŠธ
boolean bool = true;  // 1๋ฐ”์ดํŠธ

๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹

  • ๋ณ€์ˆ˜์™€ ์‹ค์ œ ๊ฐ’์ด ๋ชจ๋‘ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ
  • ์ฐธ์กฐ๊ฐ’ ์—†์ด ์ง์ ‘ ๊ฐ’์„ ์ €์žฅ
  • ๊ณ ์ •๋œ ํฌ๊ธฐ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

2. ์ฐธ์กฐ ํƒ€์ž…(Reference Type)์˜ ํŠน์ง•

์ฐธ์กฐ ํƒ€์ž…์€ ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํƒ€์ž…์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ ํƒ€์ž…์˜ ์˜ˆ์‹œ

String name = "John";                    // ๋ฌธ์ž์—ด
Person person = new Person("Alice", 25); // ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ์ฒด
int[] numbers = new int[5];             // ๋ฐฐ์—ด
ArrayList<String> list = new ArrayList<>(); // ์ปฌ๋ ‰์…˜

๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹

  • ๋ณ€์ˆ˜(์ฐธ์กฐ)๋Š” ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ
  • ์‹ค์ œ ๊ฐ์ฒด๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ
  • ๋ณ€์ˆ˜๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐ

3. ์‹ค์ œ ์ผ€์ด์Šค๋กœ ์‚ดํŽด๋ณด๊ธฐ

Case 1: ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

int age = 25;
double height = 175.5;
  • age ๋ณ€์ˆ˜์™€ 25๊ฐ’ ๋ชจ๋‘ ์Šคํƒ์— ์ €์žฅ
  • height ๋ณ€์ˆ˜์™€ 175.5๊ฐ’ ๋ชจ๋‘ ์Šคํƒ์— ์ €์žฅ

Case 2: ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

String name = "John";
Person person = new Person("Alice", 25);
  • name๊ณผ person ๋ณ€์ˆ˜๋Š” ์Šคํƒ์— ์ €์žฅ (์ฐธ์กฐ๊ฐ’)
  • "John" ๋ฌธ์ž์—ด๊ณผ Person ๊ฐ์ฒด๋Š” ํž™์— ์ €์žฅ (์‹ค์ œ ๋ฐ์ดํ„ฐ)

4. ์™œ ์ด๋ ‡๊ฒŒ ์„ค๊ณ„๋˜์—ˆ์„๊นŒ?

๊ธฐ๋ณธ ํƒ€์ž…์˜ ์žฅ์ 

  • ๋น ๋ฅธ ์ ‘๊ทผ ์†๋„ (์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ ์ง์ ‘ ์ ‘๊ทผ)
  • ์ ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰
  • ๋‹จ์ˆœํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋ถˆํ•„์š”)

์ฐธ์กฐ ํƒ€์ž…์˜ ์žฅ์ 

  • ์œ ์—ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (๋™์  ํ• ๋‹น)
  • ๊ฐ์ฒด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ‘œํ˜„ ๊ฐ€๋Šฅ

๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ

int a = 25;  // 4๋ฐ”์ดํŠธ๋งŒ ์‚ฌ์šฉ
Integer b = 25;  // ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ (๊ฐ์ฒด ์˜ค๋ฒ„ํ—ค๋“œ)

๐ŸŽฏ ๊ฒฐ๋ก 

์š”์•ฝ ์ •๋ฆฌ

  1. ๊ธฐ๋ณธ ํƒ€์ž…
    • ๊ฐ’์ด ์ง์ ‘ ์Šคํƒ์— ์ €์žฅ
    • ๊ณ ์ •๋œ ํฌ๊ธฐ
    • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋Œ€์ƒ ์•„๋‹˜
    • ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„
  2. ์ฐธ์กฐ ํƒ€์ž…
    • ์ฐธ์กฐ(์ฃผ์†Œ)๋งŒ ์Šคํƒ์— ์ €์žฅ
    • ์‹ค์ œ ๊ฐ์ฒด๋Š” ํž™์— ์ €์žฅ
    • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋Œ€์ƒ
    • ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

์‹ค๋ฌด์—์„œ์˜ ์˜๋ฏธ

๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ๋ฐฉ์‹์˜ ์ดํ•ด๋Š” ํŠนํžˆ ๋‹ค์Œ ์ƒํ™ฉ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค

 

  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”
  • ๋ฉ”์„œ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์‹œ ๋™์ž‘ ๋ฐฉ์‹ ์ดํ•ด
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ์˜ ํƒ€์ž… ์„ ํƒ

์ด๋Ÿฌํ•œ ์ฐจ์ด์ ์„ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ํ™œ์šฉํ•œ๋‹ค๋ฉด, ๋” ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.