Java] Type Conversion, 형 변환
Implicit Conversion, 자동 형 변환
자동 형 변환, 묵시적 형 변환, 암시적 형 변환이라고도 불린다.
Promotion(타입 확장)
1 | int numInt = 3; |
화살표 방향으로는 자동 형 변환이 이뤄질 수 있다.
자동 형 변환에서는 데이터 손실이 이뤄지지 않는다.
Explicit Conversion, 명시적 형 변환
Casting(타입 축소) 과정에서 데이터의 손실이 이뤄질 순 있지만, 형 변환이 필요할 때 사용
흔한 예로서 파이썬에서 소수점이 나왔을 때 int(value)
를 통해 소수점의 값을 버리고 정수값을 가져오는 코드를 알고리즘에서 많이 사용한다. 자바에서는 아래와 같이 처리한다.
1 | float numFloat = 3.14f; |
Problem]
아래의 코드는 몇 번의 형 변환이 이뤄지는가?
1 | // 1번 |
1번의 경우는 결과값이 11.0
이 나오므로 1번의 형 변환(Promotion)이 이뤄진다.
2번의 경우는 결과값이 11
이 나온다.
총 2번의 형 변환이 이뤄지는데 첫 번째는 2.2를 곱한 11.0인 double형태로 Promotion이 이뤄지고, n이 int형으로 선언 되었기에 2번째 형 변환으로 Casting이 이뤄져 int형의 값이 나오게 된다.