Java
[Java] 형 변환 Casting의 프로모션과 디모션에 대해 알아보기
joheamin
2025. 3. 18. 12:31
자바에는 여러 타입들이 있으며 각각의 타입에는 저장가능한 범위가 정해져있다.
❓Casting 이란
타입들간에 형 변환을 의미하며, 작은 타입에서 큰 타입으로 변하거나 반대로 큰 타입에서 작은 타입으로 변하는지에 따라 자동으로 변하거나 명시적으로 변환해주거나가 달라지게된다.
🔷 자바의 타입들
1바이트 : byte / char
2바이트 : short
4바이트 : int / float
8바이트 : double / long
🔴 프로모션
작은 타입을 큰 타입으로 변환하는 것을 프로모션이라고 한다.
프로모션은 작은 타입에서 큰 타입으로 변한다는 조건아래
자동으로 형 변환이 이루어진다.
🔍 예시
short num = 10;
System.out.printf("%d",10);
👉 short > int 로 자동으로 형변환 된다.
🔴 디모션
큰 타입에서 작은 타입으로 변환하는 것을 디모션이라고 한다.
작은 타입에서 큰 타입으로 변하는 것은 자동으로 변환되며 에러가 발생하지 않지만
큰 타입에서 작은 타입으로 변환할 경우 자동으로 변환되지 않기 때문에 에러가 발생
따라서 명시적으로 변환해주어야한다.
◾ 명시적 없이 변환
double num = 10; System.out.printf("%d",10);
👉 IllegalFormatConversionException 에러 발생 : num은 d로 변환 불가능
◾ 명시적 변환
double num = 10; System.out.printf("%d",(int)10);
👉 에러 없이 출력