[java] autoboxing, unboxing

programmeaow·2022년 5월 22일
0

Java

목록 보기
4/13

자바의 타입은 기본 타입(Primitive type) / 참조 타입(Reference type)의 두 가지로 나뉘는데, 이 중에서 기본 타입에는 총 8가지 종류가 있다.
byte / short / int / long / float / double / char / boolean

기본 타입의 값을 참조 타입의 객체 안에 넣거나 그 반대의 경우 서로 호환이 안되어서 개발자가 직접 타입을 명시해줘야 했는데 jdk 1.5 버전부터는 그럴 필요가 없어졌다고 한다.

- wrapper class

  • 8가지의 기본 타입과 1:1 매핑되는 support class

wrapper class는 기본 타입을 참조 타입화 시킨 클래스인데 이것을 이용하여 참조타입 객체에 기본 타입의 데이터를 넣거나 반대의 경우가 가능하다.
이 과정이 바로 autoboxing, unboxing이다.

public void test() {
		int i = 1;  //기본 타입
		Integer num = new Integer(1);  //참조 타입 
		
		//unboxing 적용
		
		int i3 = new Integer(3); 
        //intValue()로 int인 기본타입으로 변환해서 대입했어야 함
		//int i3 = (new Integer(3)).intValue()
        
		//autoboxing 적용
		
		Integer i4 = 3; 
        //int 기본값 3을 객체로 변환해서 대입했어야 함
        //Integer i4 = new Integer(3); 
	}

autoboxing, unboxing 을 적용하여 기본 타입 변수에 참조 타입의 값을, 그리고 반대의 경우로 값을 대입할때 타입을 명시하지 않고도 가능한 것을 알 수 있다.

int - Integer처럼 기본 타입 8가지에 각각 대응하는 클래스들이 있고, java.lang package에서 제공되며 유일하게 import 없이 사용이 가능하다.

profile
개발이란 뭘까

0개의 댓글