자바에는 여러 타입들이 있으며 각각의 타입에는 저장가능한 범위가 정해져있다.
❓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);
👉 에러 없이 출력
✔️ 형 변환을 할 때에는 프로모션과 디모션을 잘 생각하여 변환해주도록 한다.
'Java' 카테고리의 다른 글
[Java] 상속관계에서의 Super와 Super()의 대해서 알아보기 (2) | 2025.03.26 |
---|---|
[Java] 다형성이 무엇이고 왜 사용할까? (2) | 2025.03.26 |
[Java] 인스턴스 초기화 블럭이 무엇이고 어떨 때에 사용될까? (2) | 2025.03.25 |
[Java] Static 에 대해 알아보고 non_Static과의 동작 차이를 살펴보기 (2) | 2025.03.21 |
[Java] 클래스,객체,인스턴스에 차이점에 대해 알아보기 (4) | 2025.03.20 |