Java

[Java] 래퍼 클래스(Wrapper Class)란

체리1001 2024. 4. 18.

1. 래퍼 클래스(Wrapper Class)란 

래퍼 클래스란 자바에서 기본 자료타입을 객체로 다루기 위해 사용하는 클래스입니다.

 

자바는 크게 기본 타입(Primitive Type)과 참조 타입(Reference Type)의 자료형을 가지고 있습니다. 대표적인 기본 타입으로는 int, float, double, char, boolean 등이 있는데요! 개발을 하다보면 종종 기본 타입 데이터를 객체로 표현해야 하는 경우가 있습니다. (저는 코딩 테스트를 풀 때 가장 많이 사용하는 것 같습니다..) 이때 래퍼 클래스가 사용됩니다!

 

2. 래퍼 클래스의 종류

자바의 모든 기본 타입은 객체 형태로 표현할 수 있으며, 타입명이 비슷하기 때문에 쉽게 알고 사용할 수 있습니다!

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

 

3. 박싱(Boxing)과 언박싱(UnBoxing)

기본 타입 데이터를 래퍼 클래스 객체로 만드는 과정을 박싱이라고 하며, 그 반대 과정을 언박싱이라고 합니다.

public class Main {
    public static void main(String[] args)  {
        // Java 9 이전에 사용하던 방식
        Integer num_1 = new Integer(17); // 박싱
        
        // Java 9 이후부터 사용하는 방식
        Integer num_2 = Integer.valueOf(17); // 박싱
        
        int n = num_2.intValue(); //언박싱
    }
}

코드에서 알 수 있듯이 Java 9 버전 이전과 이후의 방식에 차이가 있으니 참고해 주세요!

(1) 자동 박싱과 자동 언박싱

자동 형변환처럼 자동으로 박싱되거나 언박싱되는 경우가 존재합니다.

public class Main {
    public static void main(String[] args) {
        int data = 123;

        // 자동 박싱
        Integer boxingData = data;
        System.out.println(boxingData);

        // 자동 언박싱
        int sum = boxingData + 100;
        System.out.println(sum);
    }
}

코드 출력 결과

출력 결과를 보면 박싱이 잘 수행된 것을 확인할 수 있습니다.

 

박싱된 데이터는 래퍼 클래스 타입이므로 .getClass()가 함수가 존재하지만, 언박싱된 sum은 기본 타입이기 때문에 .getClass() 함수가 없어서 빨간 줄이 뜨는 것을 확인할 수 있습니다!

 

참고 https://ktko.tistory.com/entry/%EC%9E%90%EB%B0%94-%EB%B0%95%EC%8B%B1boxing%EA%B3%BC-%EC%96%B8%EB%B0%95%EC%8B%B1unboxing https://coding-factory.tistory.com/547

'Java' 카테고리의 다른 글

[Java] static 알아보기  (0) 2024.04.22
[Java] JVM GC 처리 과정  (0) 2024.04.16
[Java] JVM의 구조와 자바 컴파일 과정  (0) 2024.04.16
[Java] Call by Value vs Call by Reference  (0) 2024.04.16

댓글