타입변환
Java에서 연산은 byte타입과 byte타입의 동일한 데이터 타입에서 가능하다.
다른 표현을 빌리자면 변수 또는 리터럴의 타입을 다른 타입으로
변환 하는 것을 말한다.
프로그램을 만들다보면 byte타입 과 double 타입등 서로 다른 데이터
타입끼리의 연산이 필요할 수 있다.
이럴 경우 서로 다른 변수의 형태를 같은 타입으로 바꿔줘야 하는데
이것이 형변환이다.
1. 자동 타입변환(Promotion)
말 그대로 자동으로 타입 변환이 일어나는 것을 의미한다.
다시 말하자면, 프로그램 실행 도중 형변환(타입변환)이 일어나는 것이다.
기본타입의 허용범위를 크기순으로 정리하면,
byte < short < int < long < float < double
순이 되는 것이며, 다음과 같이 명령 하였을 때
byte 형태에서 int 형태로 형변환(타입변환)이 발생된다.
또한 정수타입에서 실수타입으로 저장될 경우 정수타입인 long 보다 실수타입인 double의 허용범위가 더 크기 때문에 long 타입을 double 타입으로 대입 할 경우 double 로 형변환이 된다.
char 타입의 경우 정수의 경우 형변환 되면 유니코드 값이 저장된다.
2.강제 타입변환(Casting)
큰 크기의 타입은 작은 타입으로 자동 형변환을 할 수 없다.
하지만 강제로 int 타입의 1byte를 잘라서 byte 타입에 저장 할 수 있다.
나머지 3byte는 버려지게 된다.
실수타입(float, double)은 정수타입으로 자동으로 형변환 할 수 없기 때문에, 강제 타입변환을 사용해야 한다.
이럴 때 소수점 이하는 버려지고 정수만 사용하게 된다.
소수점 이하가 버려지기 때문에 정밀도에 손실이 발생된다.
3. 문자열 결합연산
"문자열" + 연산 = 문자열 결합 연산
문자열과 연산을 하게 되면 피연산자도 문자열로 변환되어 문자열 결합이 일어난다.