Java는 데이터를 클래스나 객체 외에 (int, double, char 및 boolean과 같은) 기초 타입을 가진다.
따라서 Java에서는 기본형 타입과 객체 참조 같은 두가지 타입의 관리 데이터를 가지게 된다.
어떤 상황에서는 기본형 타입을 객체로 사용해야 하는 경우가 있다. 이러한 경우에 기본형 타입 값을 객체로 포장할 필요가 있다.
포장 클래스(wrapper class)는 특정 기본형 타입을 나타낸다. 예를 들어 Integer 클래스는 간단한 정수 값을 나타낸다.
Integer age = new Integer(30);
Double avg = new Double("3.145");
* AutoBoxing, AutoUnBoxing
JDK 1.5 버전 이후에는 자동으로 Boxing과 UnBoxing을 처리하도록 AutoBoxing 과 AutoUnBoxing을 제공한다.
- AutoBoxing
Integer obj = 61;
숫자 61을 Integer 객체에 넣기 위해서는(Boxing) new Integer(61) 과 같이 객체를 생성해야 하지만, 위와 같이 대입하면 AutoBoxing이 자동으로 진행된다.
- AutoUnBoxing
Integer obj2 = new Integer(69);
int num1 = obj2;
Integer 객체에 있는 int 값을 가져오기 위해서는(UnBoxing) obj2.intValue() 메소드를 사용하여 가져와야 하지만, 위와 같이 int 형 변수에 Integer 객체를 대입하면 자동으로 UnBoxing이 진행된다.
* AutoBoxing과 AutoUnBoxing 은 단지 기본형 타입과 상응하는 Wrapper class에만 일어난다. 다른 경우에 대입을 시도하면 컴파일 에러가 발생한다.
- Integer는 intValue(), Double은 doubleValue() 등만 AutoBoxing과 AutoUnBoxing이 발생한다.
출처: https://hyeonstorage.tistory.com/168 [개발이 하고 싶어요]
'web_배우고익히고 > 4.JAVA' 카테고리의 다른 글
컬렉션 프레임워크(With HashSet, HashMap) (0) | 2020.01.20 |
---|---|
컬렉션 프레임워크(With Array List) (0) | 2020.01.16 |
Object클래스란 (0) | 2020.01.16 |
try Catch(with throw, throws) (0) | 2020.01.14 |
익명 클래스(Anonymous class)란?(with 상속 다형성 요약) (0) | 2020.01.14 |