1. 작은 범위에서 큰 범위로의 대입 (묵시적 형변환)
int->long->double
int형을 double형으로 변환시키고 싶다면?
//intValue = 1
doubleValue = intValue
doubleValue = (double) intValue (형변환)
doubleValue = 1.0
근데 작은 범위에서 큰 범위 타입으로의 대입은 굳이 직접 형 변환을 하지 않아도 자바에서 자동으로 형변환을 해준다.
이를 묵시적 형변환이라고 한다.
2. 큰 범위에서 작은 범위로의 대입 (명시적 형변환 Casting)
1) 소수점 버림
double형인 1.5를 int형 변수에 명시적 형변환하여 대입하면 소수점 0.5는 삭제되고 1이 출력된다.

2) 오버플로우
int형의 최고값인 2147483647보다 1 큰 값을 int에 대입하였더니
시계가 한 바퀴 돈 것처럼 int의 가장 작은 숫자인 -2147483648로 바뀐다.


이러한 문제는 당연하게도 절대 발생하면 안 된다.
해결방법은 앞에서 보았던 것처럼 intVlaue을 long 타입으로 크기를 늘려주면 문제를 간단히 해결할 수 있다.
3. 계산할때의 형변환
1) 같은 타입끼리의 계산은 같은 결과를 낸다.
int+int -> int
double+double -> double
2) 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 발생한다.
즉, int+long -> long+long
int+double -> double+double

'백엔드 > Java' 카테고리의 다른 글
| [Java 입문] 15. 배열 (0) | 2025.08.05 |
|---|---|
| [Java 입문] 14. 스캐너 Scanner / println( ) (0) | 2025.07.31 |
| [Java 입문] 12. 지역 변수와 스코프 (0) | 2025.07.31 |
| [Java 입문] 11. 반복문 while / do-while / for (0) | 2025.07.31 |
| [Java 입문] 10. 삼항 연산자 ? : (0) | 2025.07.05 |