Sio's Programming

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

Programming/JAVA

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

SSio 2018. 5. 14. 15:41

자바는 기본적으로 다양한 패키지를 지원 그중에서 가장 중요한 패키지

  • 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