Sio's Programming
JAVA (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; //오토언박싱
}
}
- int i ; 는 기본형 타입
- Integer i2 = new Integer 는 Wrapper 클래스이다.
- 오토박싱(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를 사용할 수 없는걸 확인할 수 있습니다.
public class IntegerExam{
public static void main(String[] args){
Integer i1 = 5;
int max_int = i1.MAX_VALUE;
long i1_long = i1.longValue();
// int i2 = 5;
// int min_int = i2.MIN_VALUE;
// long i2_long = i2.longValue();
}
}
int는 클래스가 아니라서 메소드가 실행안됨 (X)
'Programming > JAVA' 카테고리의 다른 글
JAVA (StringBuffer) (0) | 2018.05.14 |
---|---|
배열(Array), ArrayList 차이점 및 활용 (0) | 2018.05.09 |
스레드 (Runnable,Thread, synchronized) (0) | 2018.05.03 |
JAVA 입출력(I/O) (0) | 2018.05.03 |
Map 계열 컬렉션 (0) | 2018.05.02 |