세로형
Recent Posts
Recent Comments
Link
04-25 01:17
«   2024/04   »
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
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자바 와퍼(wrapper, 포장) 클래스, 박싱(boxing), 언박싱(unboxing), 자동 박싱(auto boxing) 본문

java

자바 와퍼(wrapper, 포장) 클래스, 박싱(boxing), 언박싱(unboxing), 자동 박싱(auto boxing)

이수진의 블로그 2017. 8. 18. 08:38

자바는 기본 타입(byte, char, short, int, long, float, double, boolean)의 값을 갖는 객체를 생성할 수 있다. 이런 객체를 포장(wrapper) 객체라고 하는데 그이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다.

포장 클래스는 java.lang 패키지에 포함되어 있는데 다음과 같이 기본 타입에 대응되는 클래스들이 있다.

기본 타입
포장 클래스
byte
Byte
char
Character
short
Short
int
Integer
long
Long
float
Float
double
Double
boolean
Boolean
박싱(boxing)과 언박싱(unboxing)

기본 타입의 값을 포장 객체로 만드는 과정을 박싱(boxing)이라 하고 반대로 포장 객체에서 기본 타입의 값을 얻어내는 과정을 언박싱(unboxing)이라고 한다.

소스를 보며 살펴보자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Wrapper {
 
    public static void main(String[] args) {
        
        //boxing
        Integer i1 = new Integer(100);
        Integer i2 = new Integer("100");
        Integer i3 = Integer.valueOf("300");
        
        
        //unboxing
        int value = i1.intValue();
        int value2 = i2.intValue();
        int value3 = i3.intValue();
        
        System.out.println(value);
        System.out.println(value2);
        System.out.println(value3);
 
    }
 
}
Colored by Color Scripter

5~7 라인은 숫자로되어 있는 값과, 숫자 형태의 문자열을 전부 Integer 클래스에 Boxing한다.

그리고 11~14번째줄에서 unBoxing을 통해 값을 가지고 온다.
이것이 boxing과 unboxing이다.

하지만 자동으로 박싱과 언박싱을 해준다.
바로 예제를 보자

1
2
3
4
5
6
//자동 boxing
Integer i4 = 100;
System.out.println(i4);
        
//자동 unboxing
int value4 = i4;

이런식으로 바로바로 진행되도록 자바가 기능을 제공해준다.


반응형
그리드형
Comments