Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코딩
- 코딩공부
- Grafana
- 메서드
- 프로그래머스
- 회고
- css
- aop
- 이진 탐색(binary search)
- 면접(java
- 개발자 취업
- github
- Til
- GIT
- Java
- CS
- 항해99
- Spring
- 정렬 알고리즘(sort algorithm)
- 자료구조
- 배열
- 99클럽
- wil
- Entity
- HTML
- cs 공부)준비
- 코딩문제
- 코딩테스트 준비
- 자바
- ArrayList
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240416 wrapper 클래스 본문
wrapper 클래스
- 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어진다.
- 대표적으로 기본 타입은 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있는데 기본 자료 타입을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.
- 자바는 모든 기본타입은 값을 갖는 객체 생성이 가능하다. 이런 객체를 포장 객체라고도 하는데 기본 타입의 값을 내부에 두고 포장하기 때문이다. 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다. 값을 변경하고 싶다면 새로운 포장 객체를 만들 수 있다.
래퍼 클래스 종류
기본타입(primitive type) | 래퍼클래스(wrapper class) |
byte | Byte |
char | Character |
int | Integer |
float | Float |
double | Double |
boolean | Boolean |
long | Long |
short | Short |
래퍼 클래스의 특징
변수가 객체가 되기 때문에 다양한 메소드를 활용할 수 있다.
- 매개변수로 객체가 요구될 때
- 기본형 값이 아닌 객체로 저장해야 할 때
- 객체간의 비교가 필요할 때(예. equals())
변수같지만 객체이기 때문에 데이터의 활용을 위해 다시 자료형으로 되돌려야 한다.
→ 자료형 변수를 래퍼클래스로 바꾸는 과정을 박싱(boxing), 래퍼 클래스를 변수로 바꾸는 과정을 언박싱(unboxing)이라고 한다.
기본 타입과 래퍼 클래스 비교
Wrapper 클래스 사용 이유
- 객체로 변환할 때 사용한다.
→ 기본 데이터 타입을 객체로 변환하여 다양한 객체 지향 가능을 사용할 수 있다.
- Null 값 처리할 때 사용한다.
→ null 값을 사용할 수 있어 데이터의 존재 여부를 표현할 수 있다.
- Collection 사용할 때 사용한다.
→ 컬렉션 프레임워크에서는 객체만을 저장할 수 있기 때문에 래퍼 클래스를 사용하여 기본 데이터 타입을 저장한다.
- 메서드를 호출할 때 사용한다.
→ 기본 데이터 타입에 대한 메소드를 호출할 때 래퍼 클래스로 호출한다.
래퍼 클래스 구조도
박싱(Boxing)과 언박싱(UnBoxing)
박싱(Boxing)
기본 타입의 데이터를 래퍼 클래스 인스턴스로 변환하는 과정
오토박싱(Autoboxing) : 박싱이 자동으로 이루어진 것을 말한다.
언박싱(UnBoxing)
래퍼 클래스 인스턴스의 값을 기본 타입의 데이터로 꺼내는 과정
오토언박싱(Autounboxing) : 언박싱이 자동으로 이루어진 것을 말한다.
// 박싱
Integer num = new Integer(14); // Integer 래퍼 클래스 num 에 14 의 값을 저장
// 오토 박싱
Integer num = 14;
// 언박싱 (intValue)
int n = num.intValue(); // 래퍼 클래스 num 의 값을 꺼내 가져온다.
// 오토 언박싱
int n = num;
// 재 포장(박싱)
n = n + 100; // 114
num = new Integer(n);
참고 자료
- https://coding-factory.tistory.com/547
- https://inpa.tistory.com/entry/JAVA-%E2%98%95-wrapper-class-Boxing-UnBoxing
'기술 > java' 카테고리의 다른 글
[TIL]240424 JAVA ==과 equals() 차이 (0) | 2024.04.24 |
---|---|
[TIL]240417 열거형(enum) (0) | 2024.04.17 |
[TIL]240410 JAVA Collection (0) | 2024.04.10 |
[TIL]240408 Scanner 클래스 (1) | 2024.04.08 |
[TIL]240406 Set (0) | 2024.04.06 |