FIF's 코딩팩토리

java.lang 패키지와 오토박싱/오토언박싱 본문

Back-End/Java(자바)

java.lang 패키지와 오토박싱/오토언박싱

FIF 2019. 11. 4. 10:52
반응형

 

자바는 많은 패키지를 제공하는데, 중요한 패키지중 하나가 java.lang 패키지이다.

java.lang패키지는 기본으로 import 되어있다.

 

아래 java doc에서 java.lang 패키지에 관한 내용을 볼 수 있다.

https://docs.oracle.com/javase/8/docs/api/index.html

 

기본형 타입을 객체로 변환시킬 때 사용되는 wrappper클래스와,

모든 클래스의 최상위 클래스인 Obejct, 문자열과 관련된 String, StringBuffer, StringBuilder 클래스,

콘솔에 결과물을 찍는 System클래스, 수학과 관련된 Math클래스등 중요한 클래스들이 많이 들어있다.

 

wrapper 라는 실제 클래스가 존재하는게 아니고

8개의 기본 데이터 타입들을 객체로 변환시킬 수 있는 클래스들이 있다.

 

기본형 타입 wrapper 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

 

i는 기본형 타입이므로 참조형이 아니다.

int i = 5;

 

i2는 int를 객체로 바꿔주는 wrapper 클래스이다. 원래는 wrapper클래스로 한번 감싸주어야 했다.

Integer i2 = new Integer(5);

 

Java5버전 이후에 Integer i3 = new Integer(5); 이 과정을 컴파일러가 자동으로 해준다.

이 과정을 오토박싱 이라고 한다.(자동으로 감싸줌)

Integer i3 = 5;

 

객체 타입의 데이터를 기본형 타입 데이터로 형변환 하려면 아래 처럼 intValue()를 호출해야 했다.

int i4 = i3.intValue();

 

Java5버전 이후에 intValue() 를 호출하지 않아도 컴파일러가 자동으로 해준다.

이 과정을 오토언박싱 이라고 한다.(자동으로 벗겨줌)

int i5 = i3;
반응형

'Back-End > Java(자바)' 카테고리의 다른 글

[Java] 프로그램 실행 시간 측정  (0) 2019.11.07
스트링버퍼 클래스  (0) 2019.11.05
Object 클래스와 오버라이딩  (0) 2019.10.16
[Java] 맵(Map)  (0) 2019.08.30
[Java] Generic에 관하여  (0) 2019.08.28
Comments