JAVA/개념정리

래퍼 클래스 (wrapper class)

Itchild 2024. 4. 7. 20:51
728x90
반응형

 

 

래퍼 클래스 란 ?

8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해 포장해주는 클래스라고 한다.

각각의 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로 만들어준다.

래퍼 클래스는 모두 java,lang 패키지에 포함되어 제공된다.

 

래퍼 클래스 특징으로는

기본 타입은 값을 갖는 객체인 포장 객체를 생성할 수 있다.

래퍼 클래스는 각 타입에 해당하는 데이터를 파라미터로 전달받아 해당 값을 가지는 객체로 만들어준다.

래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다.

변경하기 위해서는 새로운 포장 객체를 만들어야 한다.

 

간단하게 말해 래퍼 클래스란 기본 타입의 객체화를 말한다.

래퍼 클래스 는 객체의 주체로 써야될때 ~~

 

자바에서는 원래 참조타입으로 사용하고 있었는데 다른언어인 c 언어 에서는 원시타입으로 쓰는데 ~ 우리도 원시타입으로 줄여 보자 해서 나온것이 자바의 원시 타입이다.

그래서 일반적으로 primitive type(원시타입) 을 많이 사용한다. wrapper의 경우 결국 객체를 생성하는 것인데, 굳이 객체가 필요한 경우가 없거나 null값을 반환할 필요가 없다면 객체를 생성하지 않고 primitive type(원시타입) 을 사용하는 것이 메모리의 측면에서 효율적이다.

 

 

 

- 그러면 이러한 Wrapper 클래스를 사용하는 이유는 뭘까?

원시타입 (Primitive Type)

실제 값 만을 저장하는 공간으로 스택 메모리 영역에 저장된다.

기본값이 있기 때문에 Null이 존재 하지 않고 만약 기본형 타입에 Null 을 넣고 싶다면 래퍼 클래스를 활용한다.

스택 메모리에 저장되면 알수 없는 글씨로 출력된다.

 

 

참조타입 (Reference Type)

 

스택에 저장되어 있는 실제 값의 주소를 저장하는 곳으로 힙(heap) 메모리 영역에 저장된다 .

 

래퍼 클래스란 8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해 포장해주는 클래스라고 한다.

각각의 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로 만들어준다.

래퍼 클래스는 모두 java,lang 패키지에 포함되어 제공된다.

 

 

 

 

자바의 8개의 기본 타입에 대한 래퍼 클래스는 다음과 같다.

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

 

확인해보면 int, char 타입을 제외한 나머지 기본 타입은 첫 번째 단어를 대문자로 바꿔주었고

int 와 char 타입은 Integer, Character 로 바뀌어 사용되는 것을 확인해볼 수 있다.

 

 

JDK 1.5 부터는 박싱과 언박싱이 필요한 상황에 자바 컴파일러가 자동으로 처리해준다.

간단하게 말해 래퍼 클래스란 기본 타입의 객체화를 말한다.

 

 

 

한번 더 정리 해보면 다음과 같이 4가지로 정리해 볼 수 있을 것 같다.

 

1. 래퍼 클래스는 기본 데이터 타입을 Object로 변환할 수 있다. 메소드에 전달된 인수를 수정하려는 경우 오브젝트가 필요하다. ( 기본 유형은 값에 의한 변경 Object는 참조에 의한 변경이기 때문이다. )

 

2. java.util 패키지의 클래스는 객체만 처리하므로 Wrapper class는 이 경우에도 도움이 된다.

 

3. ArrayList 등과 같은 Collection 프레임 워크의 데이터 구조는 기본 타입이 아닌 객체만 저장하게 되고 Wrapper Class를 사용하여 자동 방식과 언방식이 일어 난다.

예 ) int 값을 저장시 자동 박싱이 일어나 Integer 객체가 저장된다.

 

4. 멀티스레딩에서 동기화를 지원하려면 객체가 필요하다.

 

 

 

728x90
반응형