Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

우주코딩

wrapper 클래스, 오토박싱(auto-boxing)/오토언박싱(auto-unboxing) 본문

자바 본 강의

wrapper 클래스, 오토박싱(auto-boxing)/오토언박싱(auto-unboxing)

우주코딩 2021. 8. 12. 16:28

wrapper 클래스

primitive 타입은 Object 의 서브타입이 아니기 때문에 Object 레퍼런스에 담을 수 없다.

primitive 타입을 wrapper 클래스에 담아서 Object 레퍼런스에 담을 수 있도록 한다.

wrapper 클래스 = Object 의 서브타입

new Integer (int);
new Float(float);
new Boolean(boolean);

primitive 값을 객체화하는 용도로 사용하기 위해 만든 클래스

primitive type                            wrapper 클래스
byte                                        Byte
short                                       Short
int                                          Integer
long                                       Long
float                                       Float
double                                    Double
boolean                                  Boolean
char                                       Character

Wrapper 클래스의 인스턴스를 생성할 때는 생성자 대신 클래스 메서드를 사용하라

Byte b = new Byte((byte)100); 
Short s = new Short((short)20000);
Integer i = new Integer(3000000);

// 권장하지 않는다.
Byte b2 = Byte.valueOf((byte)100);
Short s2 = Short.valueOf((short)20000);
Integer i2 = Integer.valueOf(3000000);
Long l2 = Long.valueOf(60000000000L);

// 메서드를 사용하는 것이 좋다.

오토박싱(auto-boxing)/오토언박싱(auto-unboxing)

auto-boxing

wrapper 객체 자동 생성

Integer i = 100;
            ㄴ Integer.valueOf(100) 으로 컴파일러가 변환

wrapper 객체의 주소가 i에 들어가는 것이다.

auto-unboxing

wrapper 객체에 들어있는 값을 자동으로 꺼낸다.

Integer obj = Integer.valueOf(100);

int i = obj; 
// 컴파일러는 obj 를 obj.intValue()로 변환

obj안에 들어있는 것은 인스턴스, int 는 primitive 파일
wrapper 객체에 보관된 int 값을 꺼내 i에 저장된다.

Comments