Wrapper class
์๋ฐ์์๋ 8๊ฐ์ ๊ธฐ๋ณธํ์ ๊ฐ์ฒด๋ก ๋ค๋ฃจ์ง ์๊ณ ์๋๋ฐ, ์ด๋ฅผ ๊ฐ์ฒด๋ก ๋ค๋ฃจ๊ธฐ ์ํด 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?