오토박싱 & 언박싱

0

Autoboxing & Unboxing

: 기본형과 참조형간의 자동변환

  • JDK1.5 이전에는 기본형참조형간의 연산이 불가능
  • 이후에는 Autoboxing과 unboxing이 가능해지면서 연산이 가능해졌음.

    ↳ !!컴파일러!!가 자동으로 래퍼클래스를 기본형으로 변환시켜줌
class Ex9_16 {
	public static void main(String[] args) {
    	int i = 10;        
        // 기본형을 참조형으로 형변환(형변환 생략 가능)
// ↳ 원래는 기본형을 참조형으로 변경할 때 형변환 연산자 사용 불가(원칙) → 컴파일러가 자동으로 바꿔줌(원칙이 바뀐 것은 아님)
        Integer intg = (Integer)i; //컴파일러(실제코드): Integer intg = Integer.valueOf(i);
        Object obj = (Object)i; //컴파일러(실제코드): Object obj = (Object)Integer.valueOf(i);        
        Long lng = 100L; // Long lng = new Long(100L)        
        int i2 = intg + 10;  // 참조형과 기본형간의 연산 가능 (참조형이 자동으로 기본형으로 변환)
        long l = intg + lng;  // 참조형간의 덧셈도 가능 
        Integer intg2 = new Integer(20);
        int i3 = (int)intg2;  // 참조형을 기본형으로 형변환도 가능(형변환 생략가능)


↳ 컴파일러가 실제적으로 만들어주는 코드를 외우려고 하지말고, 컴파일러가 자동으로 오토박싱 언박싱 해주므로 간단하게 쓸 수 있으며 그 간단하게 쓸 수 있는 코드들만 알아두면 됨.

출처

  • 자바의 정석 기초편: ch 9- 30, 31
profile
백엔드를 공부하고 있습니다.

0개의 댓글