java.lang 패키지/오토박싱
자바는 기본적으로 다양한 패키지를 지원 그중에서 가장 중요한 패키지
- java.lang패키지의 클래스는 import를 하지 않고도 사용할 수 있다.
- java.lang패키지에는 기본형타입을 객체로 변환시킬때 사용하는 Wrapper클래스가 있다.
- Boolean, Byte, Short, Integer, Long, Float, Double 클래스
- 모든 클래스의 최상위 클래스인 Object도 java.lang패키지
- 문자열과 관련된 String, StringBuffer, StringBuilder도 모두 java.lang패키지
- 화면에 값을 출력할때 사용했던 System클래스도 java.lang패키지
- 수학과 관련된 Math클래스도 java.lang패키지
- Thread와 관련된 중요 클래스들이 java.lang패키지
- 이외에도 다양한 클래스와 인터페이스가 java.lang패키지에 속해 있다.
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; //오토언박싱
}
}
- 오토박싱(Auto Boxing)
- Integer i3 = 5; 숫자 5는 원래 기본형이지만 자동으로 Integer형태로 변환된다.
- 오토 언박싱(Auto unboxing)
- int i5 = i2; Integer객체타입의 값을 기본형 int로 자동으로 변환되어 값을 할당한다.
- 오토박싱(Auto Boxing),오토 언박싱(Auto unboxing) 은 JAVA 5부터 지원한다. 이 때 내부적으로 Wrapper클래스들이 사용된다.
Integer는 int의 wrapper class이다.
class이기 때문에 속성과 메소드를 가진다. Integer 타입인 경우 필드와 method를 사용할 수 있지만, 기본형 타입인 int의 경우 필드와 method를 사용할 수 없는걸 확인할 수 있다.
java.lang패키지에는 기본형 타입을 객체로 변환시킬 때 사용하는 Wrapper클래스에 대해 알아 보자.
public class WrapperExam {
public static void main(String[] args) {
int i = 5;
Integer i2 = new Integer(5);
Integer i3 = 5; //오토박싱
int i4 = i2; //오토언박싱
long i2_long = i2.longValue();
long i4_long = i4.longValue(); // 오류 발생!
}
}
이 때, integer타입과 int타입의 오토박싱, 오토언박싱의 경우에도 Wrapper클래스가 사용된다.
i2는 Integer형이므로 longValue()메소드를 사용할 수 있으나 i4는 int형이므로 메소드를 사용하면 오류가 발생한다.
'공부 STUDY > JAVA' 카테고리의 다른 글
[JAVA] java.util패키지 | 컬렉션 프레임워크(Collection Framework) (0) | 2023.01.15 |
---|---|
[JAVA] StringBufffer, StringBuilder 사용법 & 차이점이 뭘까? (0) | 2023.01.15 |
[JAVA] Object 클래스, 오버라이딩 (0) | 2023.01.15 |
[JAVA] 예외처리( exception handing ) - (3)사용자 정의 exception (0) | 2023.01.15 |
[JAVA] 예외처리( exception handing ) -(2) (0) | 2023.01.15 |