형변환이란?

  • 형변환(타입변환): 데이터 타입을 다른 데이터 타입으로 변환하는 것
  • 자동(묵시적) 타입변환(promotion)과 강제(명시적) 타입변환(casting)이 있음

자동(묵시적)타입변환 - promotion

  • promotion은 주로 메모리 크기가 작은 타입에서 큰 타입에 저장될 때 발생
  • byte < short, char < int < long < float < double
  • 자동 타입변환시 값이 변경되는 것이 아닌 값이 복사되므로 값의 손실이
    발생하지 않음
// promotion ex)
double a = 3.0F; // float형 => double형 (promotion)

강제(명시적)타입변환 - casting

  • casting은 주로 메모리 크기가 큰 타입에서 작은 타입에 저장될 때 발생
  • casting은 promotion과 달리 캐스팅 연산자를 사용
  • 작은 메모리 크기 타입 = (작은 메모리 크기 타입) 큰 메모리 크기 타입
  • 값의 손실이 발생, 원래 값이 보존되지 않음
    • 실수 타입을 정수 타입으로 casting시 소수점 이하는 버려짐
// casting ex)
int a = 1200;
byte b = (byte)a; // casting

Leave a comment