Java 자료형 변환의 종류
Java에서는 다양한 상황에서 자료형(타입)을 변환할 수 있습니다.
이 글에서는 자바의 주요 자료형 변환 방법을 자동 형변환, 강제 형변환, Wrapper 클래스 변환으로 나누어 예제와 함께 정리합니다.
1. 자동 형변환 (Implicit Type Casting)
자동 형변환은 자바 컴파일러가 명시적 코드 없이도 자동으로 수행하는 자료형 변환입니다.
주로 작은 크기의 자료형에서 큰 크기의 자료형으로 변환할 때 발생합니다.
변환 가능한 예
byte → short → int → long
char → int
float → double
int value = 100;
long longValue = value; // 자동으로 int → long 변환
float f = 10.5f;
double d = f; // float → double 변환
주의할 점은 **데이터 손실이 없는 경우에만 자동 형변환이 일어난다**는 것입니다.
2. 강제 형변환 (Explicit Type Casting)
강제 형변환은 개발자가 직접 형변환 연산자를 명시해야 하는 변환으로,
주로 큰 범위의 자료형을 작은 범위로 변환할 때 사용합니다.
이 방식은 데이터 손실 또는 오차가 발생할 수 있으므로 주의가 필요합니다.
double doubleValue = 1.23;
float floatValue = (float) doubleValue; // 명시적으로 double → float
int intValue = (int) 3.99; // 결과: 3 (소수점 이하 버림)
위 예제처럼, (자료형)
형태로 변환 대상 앞에 명시해야 합니다.
3. Wrapper 클래스 형변환 (Boxing / Unboxing)
Java는 기본형을 객체로 다루기 위해 Wrapper 클래스를 제공합니다.
이 Wrapper 클래스들은 기본형 값을 객체로 감싸거나(박싱), 반대로 객체에서 기본형을 추출(언박싱)할 수 있게 합니다.
기본형 → Wrapper 객체
int value = 123;
Integer integerObj = Integer.valueOf(value); // 박싱
Wrapper 객체 → 다른 타입
Integer integerValue = 123;
Double doubleValue = integerValue.doubleValue(); // Integer → double
오토 박싱 & 언박싱 (Java 1.5 이상)
Integer boxed = 100; // 자동 박싱
int unboxed = boxed; // 자동 언박싱
Wrapper 클래스는 컬렉션(List, Map 등)에서 기본형을 저장할 수 없을 때 반드시 사용됩니다.
4. 자료형 변환 시 주의사항
- 자동 형변환은 데이터 손실이 없는 경우에만 일어납니다.
- 강제 형변환은 데이터 손실 가능성을 항상 염두에 두고 사용해야 합니다.
- Wrapper 클래스는 null 체크와 equals 비교 시 주의가 필요합니다.
'개발' 카테고리의 다른 글
[C#] DTMF 전송 방식 (In-band vs Out-of-band) 및 RTP 패킷 (0) | 2024.08.07 |
---|---|
[Java] String을 int와 Integer로 변환하는 방법 (0) | 2024.08.05 |
Java Thread 클래스 사용법 (0) | 2024.08.01 |
Spring HandlerInterceptor 사용법 (0) | 2024.07.26 |
[VSCode] region 코드접기 (0) | 2024.07.23 |