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. 실수형으로 갈수록 정밀도는 올라가지만 메모리 사용량도 늘어납니다.