Wrapper class

์ž๋ฐ”์—์„œ๋Š” 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด Wrapper ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๊ธฐ๋ณธํ˜•
Wrapper ํด๋ž˜์Šค
์ƒ์„ฑ์ž

boolean

Boolean

Boolean(boolean value)

char

Character

Character(char value)

byte

Byte

Byte(byte value)

short

Short

Short(short value)

int

Integer

Integer(int value)

long

Long

Long(long value)

float

Float

Float(float value)

double

Double

Double(double value)

Boolean๊ณผ Character๋ฅผ ์ œ์™ธํ•œ 6๊ฐœ์˜ ์ˆซ์ž ๋ž˜ํผ ํด๋ž˜์Šค(Byte, Short, Integer, Long, Float, Double)๋Š” ๋ชจ๋‘ Number ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค.

๊ฐ’ ๋น„๊ต

๋ž˜ํผ ํด๋ž˜์Šค๋Š” equals() ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜(override)๋˜์–ด ์žˆ์œผ๋ฉฐ, Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ compareTo() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค.

public static void main(String[] args) {
    Integer i1 = new Integer(100);
    Integer i2 = new Integer(100);
    System.out.println(i1 == i2); // false
    System.out.println(i1.equals(i2)); // true
    System.out.println(i1.compareTo(i2)); // 0
}

์บ์‹ฑ

Integer๋ฅผ ๋น„๋กฏํ•œ ๋ช‡๋ช‡ ๋ž˜ํผ ํด๋ž˜์Šค๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ์บ์‹ฑ(caching)ํ•ด ๋‘”๋‹ค.

  • Integer.valueOf()๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ -128์—์„œ 127 ์‚ฌ์ด์˜ ๊ฐ’์„ ์ด ์บ์‹œ(pool)์—์„œ ๊บผ๋‚ด์–ด ์‚ฌ์šฉ

  • JVM ์˜ต์…˜์„ ํ†ตํ•ด ์บ์‹œ ๋ฒ”์œ„๋ฅผ ์กฐ์ • ๊ฐ€๋Šฅ

  • new Integer()๋Š” ์ด ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ•ญ์ƒ ํž™(Heap)์— ์ƒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ(deprecated ๋ฐฉ์‹)

  • ์ด๋Ÿฌํ•œ ๋™์ž‘ ๋ฐฉ์‹ ๋•Œ๋ฌธ์—, == ์—ฐ์‚ฐ์ž๋กœ ๋ž˜ํผ ํด๋ž˜์Šค๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ ๋ณด๋‹จ equals() ์‚ฌ์šฉ ๊ถŒ์žฅ

๋ฐ•์‹ฑ(Boxing) & ์–ธ๋ฐ•์‹ฑ(Unboxing)

๊ธฐ๋ณธํ˜•(primitive) ๊ฐ’์„ ๋ž˜ํผ ํด๋ž˜์Šค ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •, ๋ž˜ํผ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ณธํ˜• ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ๊ฐ ๋ฐ•์‹ฑ(Boxing), ์–ธ๋ฐ•์‹ฑ(Unboxing)์ด๋ผ๊ณ  ํ•œ๋‹ค.

์˜คํ† ๋ฐ•์‹ฑ๊ณผ ์˜คํ† ์–ธ๋ฐ•์‹ฑ์€ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค์ง€๋งŒ, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.

  • ๋ฐ˜๋ณต๋ฌธ ๋“ฑ์—์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ•์‹ฑ/์–ธ๋ฐ•์‹ฑ์ด ๋ฐ˜๋ณต๋˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ

  • Integer ๋ž˜ํผ ๊ฐ์ฒด๊ฐ€ null์ผ ๋•Œ ์˜คํ† ์–ธ๋ฐ•์‹ฑ์ด ๋ฐœ์ƒํ•˜๋ฉด, null.intValue()๊ฐ€ ํ˜ธ์ถœ๋˜์–ด NullPointerException ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ฃผ์˜ ํ•„์š”

์ฐธ๊ณ ์ž๋ฃŒ

Last updated

Was this helpful?