[Java] java.lang 패키지 / 오토박싱

재영양·2022년 10월 5일
0

Study

목록 보기
4/14

java.lang 패키지


java.lang 패키지의 클래스는 import를 하지 않고도 사용할 수 있다.

💡 java.lang 패키지의 클래스 종류

  • Wrapper: 8개의 기본형 데이터 타입의 객체화를 가능하게 하는 클래스
    - 기본형 데이터 타입: int, long, float, double, boolean 등
    - Wrapper 클래스: Integer, Long, Float, Double, Boolean 등
  • Object: 모든 클래스의 최상위 클래스
  • String, StringBuffer, StringBuilder
  • System: 화면에 값을 출력
  • Math
  • 등등 ...

오토박싱 & 오토언박싱


박싱과 언박싱

  • 박싱: 기본 타입 데이터에 대응하는 Wrapper 클래스로 변환
  • 언박싱: Wrapper 클래스에서 기본 타입으로 변환

JDK 1.5부터는 자바 컴파일러가 박싱과 언박싱이 필요한 상황에 자동으로 처리해준다.


예제 )

public class WrapperExam {
       public static void main(String[] args) {
           int i = 5; 
           Integer i2 = new Integer(5);
           Integer i3 = 5;     //오토박싱
           int i4 = i2.intValue();
           int i5 = i2;       //오토언박싱
     
           long i2_long = i2.longValue();
           long i5_long = i5.longValue();       // 오류 발생!
       }
   }
  • 오토박싱(Auto Boxing)
    Integer i3 = 5;
    숫자 5는 원래 기본형이지만 자동으로 Integer형태로 변환된다.
  • 오토 언박싱(Auto unboxing)
    int i5 = i2;
    Integer객체타입의 값을 기본형 int로 자동으로 변환되어 값을 할당한다.
  • 오토박싱 오류
    long i4_long = i5.longValue();
    이 때, integer타입과 int타입의 오토박싱, 오토언박싱의 경우에도 Wrapper클래스가 사용됩니다. i2는 Integer형이므로 longValue() 메소드를 사용할 수 있으나 i5는 int형이므로 메소드를 사용하면 오류가 발생한다.

0개의 댓글