우당탕탕 좌충우돌 개발일기
java.lang 패키지/오토박싱(Autoboxing) 본문
JAVA는 기본적으로 다양한 패키지를 지원한다.
그중에서도 가장 중요한 패키지인 java.lang 패키지가 존재하는데, 별도의 import 없이도 사용이 가능하다.
java.lang 패키지 안에는 기본형 타입을 객체로 변환시킬 때 사용하는 wrapper라는 클래스가 존재한다.
java.lang (Java SE 11 & JDK 11 ) (oracle.com)
🍟 java.lang이 포함하는 패키지
Wrapper, Object, String, StringBuffer, StringBuilder, System, Math,... 이외에도 스레드와 관련된 중요한 패키지들이 존재
오토박싱(Autoboxing) / 오토언박싱(Unboxing)
기본 데이터 타입(Primitive Type)을 동등한 wrapper 타입으로 자동 변환해주는 것을 박싱(boxing)이라 하고, 그 반대를 언박싱(unboxing)이라고 한다.
자바 5버전의 새로운 기능으로, 프로그래머는 더 이상 변환 코드를 작성하지 않아도 된다.
여기서 잠깐, 기본 데이터 타입의 종류는?
🎃 기본 데이터 타입(Primitive Type)
- 논리형 boolean
- 정수형 byte, short, int(기본), long
- 실수형 float, double(기본)
- 문자형 char
💻 예제코드
[오토박싱의 예제코드 I]
package org.example;
public class WrapperExam {
public static void main(String[] args) {
// 기본형 타입으로 객체가 아니다.(즉, 참조형 아님)
int i=5;
// wrapper 클래스 중의 하나로, 실제 int를 객체로 바꿔주는 Integer 클래스이다.
// 객체형이다(즉, 참조형)
Integer i2 = new Integer(5);
// 오토박싱의 예제(i2처럼 new Integer를 사용하지 않아도 사용 가능)
// 숫자 5 부분을 자동으로 new Integer(5)처럼 인식한다.
Integer i3 = 5;
System.out.println(i2);
System.out.println(i3);
}
}
[출력 결과값]
5
5
[오토박싱의 예제코드 II]
package org.example;
public class WrapperExam {
public static void main(String args[]){
int a=50;
Integer a2=new Integer(a);//박싱(Boxing)
Integer a3=7;//박싱(Boxing)
System.out.println(a2+" "+a3);
}
}
[출력 결과값]
50 7
[언박싱의 예제코드 I]
package org.example;
public class WrapperExam {
public static void main(String[] args) {
Integer i3 = 5;
int i4 = i3.intValue();
// 오토언박싱의 예제(i4처럼 intValue()를 호출하지 않아도 사용 가능)
int i5 = 13;
System.out.println(i4);
System.out.println(i5);
}
}
[출력 결과값]
5
13
[언박싱의 예제코드 II]
package org.example;
public class WrapperExam {
public static void main(String args[]){
Integer i=new Integer(30);
int a=i;
System.out.println(a);
}
}
[출력 결과값]
30
반응형
'Programming > JAVA' 카테고리의 다른 글
스트링(String) 클래스의 문제점 (0) | 2024.10.16 |
---|---|
StringBuffer(스트링버퍼) (0) | 2024.10.15 |
Object와 오버라이딩(Overriding) (0) | 2024.10.10 |
InputStream / OutputStream(byte단위) (1) | 2024.06.11 |
스프링 빈과 의존관계(Dependency Injection) (0) | 2024.01.12 |