본문 바로가기

프로그래밍 언어/Java

Java 데이터 타입, Wrapper 클래스와의 연결

Java 데이터 타입, Wrapper 클래스와의 연결

Java는 다양한 데이터 타입을 제공하여 개발자가 효율적으로 프로그램을 작성할 수 있도록 돕습니다. 기본 데이터 타입(Primitive Type)과 참조 데이터 타입(Reference Type)은 각각의 역할과 특성을 가지고 있으며, Wrapper 클래스는 이 둘 사이의 다리를 놓는 중요한 역할을 합니다. 이 글에서는 Java 데이터 타입의 구조와 Wrapper 클래스의 원리를 깊이 있게 탐구합니다.

 

 

목차

  1. Java의 데이터 타입 분류
  2. 기본 데이터 타입: 특성과 활용
  3. 참조 데이터 타입과 객체의 이해
  4. Wrapper 클래스란 무엇인가?
  5. Wrapper 클래스와 박싱(Boxing) & 언박싱(Unboxing)
  6. Wrapper 클래스의 주요 메서드
  7. 실무에서 Wrapper 클래스 활용 사례

 

Java의 데이터 타입 분류

Java는 데이터를 표현하는 데 필요한 두 가지 주요 데이터 타입을 제공합니다:

  • 기본 데이터 타입 (Primitive Type)
  • 참조 데이터 타입 (Reference Type)

기본 데이터 타입은 정수, 실수, 문자, 논리값과 같은 단순 데이터를 저장하는 데 사용되며, 참조 데이터 타입은 객체와 배열을 포함한 복잡한 구조를 다룹니다.

 

 

 

기본 데이터 타입: 특성과 활용

Java는 8개의 기본 데이터 타입을 제공합니다. 각각의 데이터 타입은 메모리 크기와 값의 범위가 정해져 있습니다. 다음은 주요 기본 데이터 타입의 목록입니다:

데이터 타입 크기 값의 범위
byte 1 byte -128 to 127
int 4 bytes -2,147,483,648 to 2,147,483,647
double 8 bytes 1.7E-308 to 1.7E+308

 

 

 

참조 데이터 타입과 객체의 이해

참조 데이터 타입은 Java에서 객체의 주소를 저장하는 역할을 하며, 클래스, 배열, 인터페이스와 같은 복잡한 데이터 구조를 다루기 위해 사용됩니다. 기본 데이터 타입과는 다르게 참조 데이터 타입은 메모리 상의 동적 할당 영역을 사용하며, 객체를 조작하기 위한 메서드와 속성을 포함합니다. 아래 표는 주요 참조 데이터 타입의 예와 그 특징을 정리한 것입니다.

참조 데이터 타입 설명 예제
클래스 객체 지향 프로그래밍의 핵심 구성 요소로, 데이터와 메서드를 포함한 구조입니다. String, Scanner
배열 같은 타입의 데이터를 순차적으로 저장할 수 있는 데이터 구조입니다. int[] numbers = {1, 2, 3};
인터페이스 클래스의 설계 청사진으로, 구현해야 할 메서드의 집합을 정의합니다. List, Runnable

 

 

 

Wrapper 클래스란 무엇인가?

Wrapper 클래스는 기본 데이터 타입(Primitive Type)을 객체로 변환하기 위해 설계된 Java의 클래스로, java.lang 패키지에 포함되어 있습니다. 기본 타입은 메모리를 효율적으로 사용하지만, 객체처럼 다룰 수 없다는 한계를 가지고 있습니다. Wrapper 클래스는 이 한계를 해결하며, 다음과 같은 이점을 제공합니다:

  • 컬렉션(예: ArrayList, HashMap)과 같은 객체 지향적 구조에서 사용 가능
  • 데이터 타입 변환 메서드 제공
  • 박싱(Boxing) 및 언박싱(Unboxing) 기능 지원

다음은 주요 Wrapper 클래스의 목록입니다:

기본 데이터 타입 Wrapper 클래스
int Integer
double Double
boolean Boolean

 

 

 

 

Wrapper 클래스와 박싱(Boxing) & 언박싱(Unboxing)

Java는 기본 데이터 타입과 Wrapper 클래스 간의 자동 변환을 제공합니다. 이를 박싱(Boxing)과 언박싱(Unboxing)이라 합니다. 예를 들어:

Integer num = 10; // Boxing
int value = num;  // Unboxing
    

 

 

Wrapper 클래스의 주요 메서드

Wrapper 클래스는 데이터 변환과 유용한 메서드를 제공합니다. 예를 들어:

  • Integer.parseInt(String s): 문자열을 정수로 변환
  • Double.toString(double d): 실수를 문자열로 변환
  • Boolean.valueOf(String s): 문자열을 논리값으로 변환

 

 

실무에서 Wrapper 클래스 활용 사례

Wrapper 클래스는 실무에서 데이터 변환과 객체 지향 프로그래밍을 지원하는 중요한 도구로 사용됩니다. 대표적인 사례는 다음과 같습니다:

  1. 컬렉션 사용: Java의 컬렉션 클래스(List, Set, Map 등)는 객체만 저장할 수 있으므로, 기본 타입 대신 Wrapper 클래스를 사용해야 합니다.
    List<Integer> numbers = new ArrayList<>();
    numbers.add(10); // Boxing이 자동으로 수행됩니다.
                
  2. 데이터 변환: 문자열을 기본 타입으로 변환하거나, 기본 타입을 문자열로 변환할 때 유용한 메서드를 제공합니다.
    int value = Integer.parseInt("123");
    String text = Integer.toString(456);
                
  3. 다형성 지원: Wrapper 클래스는 객체의 형태로 다형성을 지원하며, 인터페이스나 추상 클래스를 구현할 때 유용합니다.