우당탕탕 좌충우돌 개발일기

java.lang 패키지/오토박싱(Autoboxing) 본문

Programming/JAVA

java.lang 패키지/오토박싱(Autoboxing)

성동구불주먹 2024. 10. 14. 16:56

 

JAVA는 기본적으로 다양한 패키지를 지원한다.

그중에서도 가장 중요한 패키지인 java.lang 패키지가 존재하는데, 별도의 import 없이도 사용이 가능하다.

java.lang 패키지 안에는 기본형 타입을 객체로 변환시킬 때 사용하는 wrapper라는 클래스가 존재한다.

 

java.lang (Java SE 11 & JDK 11 ) (oracle.com)

 

java.lang (Java SE 11 & JDK 11 )

Provides classes that are fundamental to the design of the Java programming language. The most important classes are Object, which is the root of the class hierarchy, and Class, instances of which represent classes at run time. Frequently it is necessary t

docs.oracle.com

 

🍟 java.lang이 포함하는 패키지

Wrapper, Object, String, StringBuffer, StringBuilder, System, Math,... 이외에도 스레드와 관련된 중요한 패키지들이 존재

 

 


 

오토박싱(Autoboxing) / 오토언박싱(Unboxing)

기본 데이터 타입(Primitive Type)을 동등한 wrapper 타입으로 자동 변환해주는 것을 박싱(boxing)이라 하고,  그 반대를 언박싱(unboxing)이라고 한다.

자바 5버전의 새로운 기능으로, 프로그래머는 더 이상 변환 코드를 작성하지 않아도 된다.

여기서 잠깐, 기본 데이터 타입의 종류는?

 

🎃 기본 데이터 타입(Primitive Type)

- 논리형 boolean

- 정수형 byte, short, int(기본), long

- 실수형 float, double(기본)

- 문자형 char

 

 


 

💻 예제코드

[오토박싱의 예제코드 I]

package org.example;

public class WrapperExam {

    public static void main(String[] args) {
        // 기본형 타입으로 객체가 아니다.(즉, 참조형 아님)
        int i=5;

        // wrapper 클래스 중의 하나로, 실제 int를 객체로 바꿔주는 Integer 클래스이다.
        // 객체형이다(즉, 참조형)
        Integer i2 = new Integer(5);

        // 오토박싱의 예제(i2처럼 new Integer를 사용하지 않아도 사용 가능)
        // 숫자 5 부분을 자동으로 new Integer(5)처럼 인식한다.
        Integer i3 = 5;

	System.out.println(i2);
        System.out.println(i3);
    }
}

 

[출력 결과값]

5
5

 

 

[오토박싱의 예제코드 II]

package org.example;

public class WrapperExam {

  public static void main(String args[]){
	int a=50;
    Integer a2=new Integer(a);//박싱(Boxing)

    Integer a3=7;//박싱(Boxing)
        
    System.out.println(a2+" "+a3);
 } 
}

 

[출력 결과값]

50	7

 


 

[언박싱의 예제코드 I]

package org.example;

public class WrapperExam {

    public static void main(String[] args) {
        Integer i3 = 5; 

        int i4 = i3.intValue();

        // 오토언박싱의 예제(i4처럼 intValue()를 호출하지 않아도 사용 가능)
        int i5 = 13; 

        System.out.println(i4);
        System.out.println(i5);
    }
}

 

[출력 결과값]

5
13

 

 

[언박싱의 예제코드 II]

package org.example;

public class WrapperExam {

  public static void main(String args[]){
	Integer i=new Integer(30);
    int a=i;
        
    System.out.println(a);
 } 
}

 

[출력 결과값]

30

 

반응형