Java/자바 정리
6. 자바의 자동 타입 변환 완전 이해하기!
코딩하는냥이
2025. 4. 15. 13:08
반응형
자바는 자료형의 크기나 범위가 다를 경우,
작은 타입에서 큰 타입으로 자동으로 변환이 됩니다.
이번 글에서는 자바의 자동 형변환 예제 코드를 통해 하나씩 알아보겠습니다!
💻 예제 코드
public class PromotionExample {
public static void main(String[] args) {
byte BYTE = 10;
int INT = BYTE;
System.out.println("intValue : " + INT);
char CHAR = '가';
INT = CHAR;
System.out.println("가의 유니코드 : " + INT);
INT = 50;
long LONG = INT;
System.out.println("longValue : " + LONG);
LONG = 100;
float FLOAT = LONG;
System.out.println("floatValue : " + FLOAT);
FLOAT = 100.5f;
double DOUBLE = FLOAT;
System.out.println("doubleValue : " + DOUBLE);
}
}
💬 코드 설명
1. byte ▶ int 자동 변환
byte BYTE = 10;
int INT = BYTE;
byte 는 1바이트, int 는 4바이트로
작은 타입에서 큰 타입으로 자동 변환이 됩니다.
2. char ▶ int 자동 변환
char CHAR = '가';
INT = CHAR;
문자는 내부적으로 유니코드 값(정수) 로 저장됩니다.
'가' 는 유니코드로 44032 ▶ int 로 변환됩니다.
3. int ▶ long 자동 변환
INT = 50;
long LONG = INT;
int는 4바이트, long는 8바이트로 자동 변환됩니다.
4. long ▶ float 자동 변환
LONG = 100;
float FLOAT = LONG;
정수에서 실수형으로 변환이 됩니다.
정밀도에서 일부 손실될 수 있으나 자동 변환이 허용됩니다.
5. float ▶ double 자동 변환
FLOAT = 100.5f;
double DOUBLE = FLOAT;
float는 4바이트, double는 같은 실수형이지만 8바이트로 자동 변환이 됩니다.
📃 실행 결과
intValue : 10
가의 유니코드 : 44032
longValue : 50
floatValue : 100.0
doubleValue : 100.5
📌 자바의 자동 타입 변환이란?
자바에서는 아래와 같이 작은 자료형에서 큰 자료형으로 변환은
컴파일러가 자동으로 처리해줍니다.
변환 방향 | 예시 |
byte → short → int → long → float → double | 정수 → 실수 가능 |
char → int → long → float → double | 문자 → 숫자 변환 가능 |
👉 단, 큰 자료형에서 작은 자료형은 자동 변환되지 않으며, 명시적 형변환이 필요합니다.
💡 포인트 정리
1. 자동 타입 변환은 자료형의 크기 순서대로 일어납니다.
2. byte, char, int, long, float, double 순으로 확장됩니다.
3. 문자형(char)도 숫자로 변환되어 저장될 수 있습니다.
4. 실수형으로 갈수록 정밀도는 올라가지만 메모리 사용량도 늘어납니다.