• ABOUT
  • POSTS
  • GUESTBOOK

ยฉ 2025 BlueCool12 All rights reserved.

2025.08.11Java

๐Ÿ“‘ ์ž๋ฐ” ์ž๋ฃŒํ˜• ์™„์ „ ์ •๋ฆฌ [๊ธฐ๋ณธํ˜•, ์ฐธ์กฐํ˜•, Wrapper ํด๋ž˜์Šค]

์ž๋ฐ”์—์„œ ์ž๋ฃŒํ˜•(Data Type)์€ ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ •์˜ํ•œ๋‹ค. ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜•(Primitive Type)๊ณผ ์ฐธ์กฐํ˜•(Reference Type)์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. 
 

1. ๊ธฐ๋ณธํ˜• (Primitive Type)


๊ธฐ๋ณธํ˜•์€ ๊ฐ’ ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. ์ด 8๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”๋กœ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค. 

๊ฐ ํƒ€์ž…๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์™€ ๊ธฐ๋ณธ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

์ •์ˆ˜ํ˜•

  • byte - 1 byte - 0
  • short - 2 byte - 0
  • int - 4 byte - 0
  • long - 8 byte - 0L
     

์‹ค์ˆ˜ํ˜•

  • float - 4 byte - 0.0f
  • double - 8 byte - 0.0d
     

๋ฌธ์žํ˜•

  • char - 2 byte - โ€˜\u0000โ€™
     

๋…ผ๋ฆฌํ˜•

  • boolean - 1 byte* - false
    (boolean์€ JVM ๋‚ด๋ถ€์ ์œผ๋กœ 1 byte๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ช…์„ธ์ƒ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.)

    ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๋Š” ์Šคํƒ(Stack) ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์ ‘๊ทผ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๊ด€๋ฆฌ๊ฐ€ ๋‹จ์ˆœํ•˜๋‹ค. 
     


2. ์ฐธ์กฐํ˜• (Reference Type)


์ฐธ์กฐํ˜•์€ ๊ฐ์ฒด์˜ ์ฃผ์†Œ(์ฐธ์กฐ๊ฐ’)๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ String, ๋ฐฐ์—ด, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์ด ์žˆ๋‹ค. 
 

java
String name = "Java";        // ๋ฌธ์ž์—ด ๊ฐ์ฒด ์ฐธ์กฐ
int[] numbers = {1, 2, 3};   // ๋ฐฐ์—ด ๊ฐ์ฒด ์ฐธ์กฐ
myClass obj = new MyClass(); // ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค ๊ฐ์ฒด ์ฐธ์กฐ


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

๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ’์— ์ ‘๊ทผ ์‹œ ์Šคํƒ โ†’ ํž™์„ ๊ฑฐ์น˜๋ฏ€๋กœ ๊ธฐ๋ณธํ˜•๋ณด๋‹ค ์ ‘๊ทผ ์†๋„๊ฐ€ ๋‹ค์†Œ ๋А๋ฆฌ๋‹ค. 

๋˜ํ•œ ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•Œ๋ฌธ์— ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋ผ๋ฆฌ == ๋น„๊ต ์‹œ ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๊ฒŒ ๋˜๋ฉฐ ์‹ค์ œ ๊ฐ’์˜ ๋น„๊ต๋Š” equals() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
 

java
String a = new String("BlueCool");
String b = new String("BlueCool");

System.out.println(a == b);      // false (์ฃผ์†Œ ๋น„๊ต)
System.out.println(a.equals(b)); // true (๊ฐ’ ๋น„๊ต)


์ถ”๊ฐ€์ ์œผ๋กœ ์ž๋ฐ”์—์„œ๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(Garbage Collector)๊ฐ€ ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. 
 



3. Wrapper ํด๋ž˜์Šค


Wrapper ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋œ๋‹ค. 

Wrapper ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?


1. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
List, Map, Set๊ณผ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์€ ๊ฐ์ฒด๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธํ˜• ๋Œ€์‹  Wrapper ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

2. null ๊ฐ’ ํ‘œํ˜„
DB๊ฐ’์ด ์—†์„ ๋•Œ API ์‘๋‹ต์—์„œ ํ•„๋“œ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. 

3. ํŽธ์˜ ๋ฉ”์„œ๋“œ ์ œ๊ณต
Wrapper ํด๋ž˜์Šค๋Š” ํ˜• ๋ณ€ํ™˜, ๋ฌธ์ž์—ด ๋ณ€ํ™˜, ์ƒ์ˆ˜๊ฐ’ ๋ฐ˜ํ™˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 

4. ์ œ๋„ค๋ฆญ(Generic)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ
์ œ๋„ค๋ฆญ ํƒ€์ž…์—๋Š” ๊ธฐ๋ณธํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ Wrapper ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

5. ๊ฐ์ฒด ์ง€ํ–ฅ ํ˜ธํ™˜์„ฑ
์ž๋ฐ” API ์ƒ๋‹น์ˆ˜๊ฐ€ ๊ฐ์ฒด ํƒ€์ž…์„ ์ „์ œ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Wrapper ํด๋ž˜์Šค๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค. 



๊ฐ ๊ธฐ๋ณธํ˜• ์ž๋ฃŒํ˜•์— ๋Œ€์‘ํ•˜๋Š” Wrapper ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

byte โ†’ Byte
short โ†’ Short
int โ†’ Integer
long โ†’ Long
float โ†’ Float
double โ†’ Double
char โ†’ Character
boolean โ†’ Boolean
 

์˜คํ† ๋ฐ•์‹ฑ(Auto-Boxing) & ์–ธ๋ฐ•์‹ฑ(Unboxing)


์ž๋ฐ”5 ๋ถ€ํ„ฐ๋Š” ๊ธฐ๋ณธํ˜•๊ณผ Wrapper ํด๋ž˜์Šค ๊ฐ„ ๋ณ€ํ™˜์ด ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. 

java
// ์˜คํ† ๋ฐ•์‹ฑ: ๊ธฐ๋ณธํ˜• -> Wrapper
Integer numObj = 10; // Integer.valueOf(10) ์ž๋™ ์ ์šฉ

// ์–ธ๋ฐ•์‹ฑ: Wrapper -> ๊ธฐ๋ณธํ˜•
int num = numObj;    // numObj.intValue() ์ž๋™ ์ ์šฉ

 

Wrapper ํด๋ž˜์Šค ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์ 


1. null ๊ฐ€๋Šฅ์„ฑ
Wrapper ํด๋ž˜์Šค๋Š” ์ฐธ์กฐํ˜•์ด๋ฏ€๋กœ null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

java
Integer n = null;
// int m = n; // NullPointerException ๋ฐœ์ƒ (์–ธ๋ฐ•์‹ฑ ์‹œ)


2. ์„ฑ๋Šฅ
๊ธฐ๋ณธํ˜•๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ๊ณ  ์ ‘๊ทผ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค. (์ฐธ์กฐํ˜•์ด๊ธฐ ๋•Œ๋ฌธ)

3. ๊ฐ’ ๋น„๊ต ๋ฐฉ๋ฒ•
== ์—ฐ์‚ฐ์ž๋Š” ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•˜๋ฏ€๋กœ ๊ฐ’ ๋น„๊ต ์‹œ equals()๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 
 

์ด์ „ ๊ธ€
๐Ÿ”‘ SSH & SFTP ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ - ์„œ๋ฒ„ ์ ‘์†๊ณผ ํŒŒ์ผ ์ „์†ก
๋‹ค์Œ ๊ธ€
๐Ÿ”„ ์ž๋ฐ” Stream API ๊ฐ€์ด๋“œ - ์ƒ์„ฑ, ์—ฐ์‚ฐ, ์žฅ๋‹จ์  ์ •๋ฆฌ
์žฅ์‹์šฉ ๋กœ๊ณ