java.lang 패키지/ 오토박싱

말하는 감자·2024년 12월 20일
0

자바 중급

목록 보기
2/21
post-thumbnail

개념

  • java.lang 패키지의 클래스는 import 없이 사용 가능
  • java.lang 패키지에는 기본형 타입을 객체로 변환시킬때 사용하는 Wrapper 클래스가 있다
    - Boolean,Byte,Short,Integer,Long,Float,Double 클래스

java.lang 패키지

  • 모든 클래스의 최상위 클래스인 Object
  • 문자열과 관련된 String, StringBuffer, StringBuilder
  • 화면에 값을 출력하는 System
  • 수학과 관련된 Math
  • Thread와 관련된 중요 클래스
  • 이외에도 다양한 클래스와 인터페이스

오토박싱(Auto Boxing)

  • Integer i3=5; : 숫자 5는 원래 기본형이지만 자동으로 Integer 형태로 변환

오토언박싱(Auto unboxing)

  • int i5=i2; : Integer 객체타입의 값을 기본형 int로 자동으로 변환되어 값을 할당

"오토박싱과 오토언박싱은 JAVA 5 부터 지원한다. 이때 내부적으로 Wrapper 클래스들이 사용된다"

Code 예시

public class WrapperExam {
    public static void main(String[] args) {
        int i=5;    //기본형 타입

        Integer i2=new Integer(5);  // 객체형
        Integer i3=5;   //오토박싱: 자동으로 형변환(int형),java5 이후

        int i4=i3.intValue(); //객체 i3의 값을 추출하여 i4에 저장
        int i5=i3;  //오토언박싱: 자동으로 객체 i3의 값을 추출하여 i5에 저장, java5 이후   

    }
}

코드 실습

	public class IntegerExam{
    public static void main(String[] args){
        Integer i1 = 5;//오토박싱: 기본int(5)가 Integer 객체로 변환됨
        
        int max_int = i1.MAX_VALUE; //i1은 Integer 객체라서 오류x, 단 max_int는 오토언박싱으로 인해 int형으로 저장됨
        long i1_long = i1.longValue();
        // i1_long도 long형으로 저장됨(오토언박싱)
        
        int i2 = 5;
        int min_int = i2.MIN_VALUE;
        //i2는 int형이기 때문에 MIN_VALUE라는 상수가 없음
        long i2_long = i2.longValue();
        //같은 이유로 오류 발생
        
    }
}
profile
주니어개발자(?)

0개의 댓글