끄적모음

레퍼 클래스

taehyon 2025. 4. 15. 19:15

1. 래퍼 클래스란

기본 자료형을 객체로 감싸는 클래스

 

기본 자료형 , 래퍼 클래스

 

2. 기본형(Primitive Type)의 종류

 

3. 참조형

  • 변수에 객체가 담기면 해당 변수를 참조형변수라고 말합니다.
  • 참조형 변수는 데이터가 저장된 메모리 주소를 가리킵니다. → Heap 메모리 주소
  • 객체 데이터는 Heap 영역에 저장되어 있기 때문입니다.
  • 객체, 배열등이 참조형에 속합니다.
Person personA = new Person("Steve"); // ✅ 객체가  담긴 personA 는 참조형 변수입니다.
Syetem.out.println(personA.name);
System.out.println(personA); // ✅ 출력하면 @123 메모리의 주소값이 출력됩니다.

 

int[] arr = {1, 2, 3, 4}; // ✅ 배열이 담긴 arr 는 참조형 변수입니다.
System.out.println(arr); // ✅ 출력하면 @123 메모리의 주소값이 출력됩니다.

 

래퍼클래스도 객체다

  • 래퍼클래스가 담겨 있는 변수도 참조형 변수입니다.
  • 하지만 출력시 메모리 주소값이 나오지 않습니다.
Integer num = 100;
System.out.println(num); // 출력 100
  • 내부적으로toString()이 오버라이딩되어 있기 때문입니다.
  • 오버라이딩 수업은 상속 수업에서 다룰 예정입니다.
  • 지금은 내부적으로 어떤 처리가 되어 있기 때문에 데이터가 직접 출력되는구나 정도로 이해하고 넘어가셔도 좋습니다.

 

4. 래퍼클래스를 왜 사용할까???

  • 기본형은 객체처럼 속성, 기능을 가질 수 없습니다.
  • 기본형을 감싼 객체를 만들어 기능을 제공하면 편리하게 데이터처리를 할 수 있습니다.
Integer num = 123; // 래퍼클래스
String str = num.toString(); // ✅ 편리한 기능

int a = 100; // 그냥 데이터 100
String str = a.toString(); // ❌ 변환 불가

 

5. 오토박싱 vs 언박싱

  • 래퍼클래스 ↔ 기본형으로 형변환은 굉장히 자주 일어납니다.
  • Java에서는 이 형변환 과정을 자동으로 지원해 줍니다.

 

오토박싱 

기본형 → 래퍼형으로 변환하는 과정을 오토박싱

  • Integer는 참조형(객체)이지만 기본형 int 값을 직접 대입할 수 있습니다.
  • 내부적으로 컴파일러가 자동으로 Integer.valueOf(10)을 호출하여 객체를 생성하기 때문입니다.
Integer num3 = 10; // ✅ 오토박싱

// ✅ 내부적 자동 처리(래퍼형 <- 기본형)
Integer num = Integer.valueOf(10);

 

오토언박식

래퍼형 → 기본형으로 변환하는 과정으로 오토언박싱

  • num은 Integer 객체(참조형변수)지만 기본형 int 변수에 대입할 수 있습니다.
  • 내부적으로 컴파일러가 자동으로 num.intValue()를 호출하여 기본형으로 변환하기 때문입니다.
Integer num3 = 10; 
int num = num3;   // ✅ 오토 언박싱

// ✅ 내부적 자동처리(기본형 <- 래퍼형)
int a = num.intValue();