Java 타입 캐스팅 마스터하기: 자동 형변환부터 명시적 형변환까지
Java 타입 캐스팅
이 가이드는 Java 타입 캐스팅을 해설하며, 주요 형태를 다루고 각각을 명확한 예제로 설명합니다.
Java 타입 캐스팅에 들어가기 전에 Java의 데이터 타입을 이해하고 있는지 확인하세요.
타입 캐스팅
한 데이터 타입(int, float, double 등)의 값을 다른 타입으로 변환하는 과정을 타입 캐스팅이라 합니다.
Java는 13가지 변환 유형을 제공하지만, 이 튜토리얼은 두 가지 핵심 범주에 집중합니다:
- 자동 형변환 (Widening Type Casting)
- 명시적 형변환 (Narrowing Type Casting)
포괄적인 목록은 Java 공식 타입 변환 문서를 참조하세요.
자동 형변환 (Widening Type Casting)
자동 형변환에서 Java는 더 작은 프리미티브를 더 큰 것으로 자동 승격시켜 데이터 손실이 없도록 합니다.
예제: int를 double로 변환
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("The integer value: " + num);
double data = num;
System.out.println("The double value: " + data);
}
}
실행 결과
The integer value: 10
The double value: 10.0
이는 int 변수가 할당 전 double로 승격되는 방식을 보여줍니다. 이 변환의 자동적 특성 때문에 암시적 타입 캐스팅이라고도 합니다.
참고: 자동 형변환은 안전하며 컴파일러에 의해 수행됩니다.
명시적 형변환 (Narrowing Type Casting)
명시적 형변환에서는 괄호를 사용하여 더 큰 프리미티브를 더 작은 것으로 명시적으로 캐스팅해야 합니다.
예제: double을 int로 변환
class Main {
public static void main(String[] args) {
double num = 10.99;
System.out.println("The double value: " + num);
int data = (int)num;
System.out.println("The integer value: " + data);
}
}
실행 결과
The double value: 10.99
The integer value: 10
(int) 캐스팅은 소수 부분을 잘라내며, 이 변환이 명시적 타입 캐스팅으로 간주되고 데이터 손실을 초래할 수 있는 이유를 보여줍니다.
참고: Java는 자동으로 명시적 형변환을 수행하지 않습니다.
아래는 프리미티브와 문자열 간의 실용적 변환들입니다.
예제 1: int를 String으로
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("The integer value is: " + num);
String data = String.valueOf(num);
System.out.println("The string value is: " + data);
}
}
실행 결과
The integer value is: 10
The string value is: 10
여기서 String.valueOf()는 정수를 텍스트 표현으로 변환합니다.
예제 2: String을 int로
class Main {
public static void main(String[] args) {
String data = "10";
System.out.println("The string value is: " + data);
int num = Integer.parseInt(data);
System.out.println("The integer value is: " + num);
}
}
실행 결과
The string value is: 10
The integer value is: 10
파싱은 Integer.parseInt()에 의존합니다. 문자열을 파싱할 수 없으면 NumberFormatException이 발생합니다.
참고: 런타임 예외를 피하기 위해 입력을 검증하세요.