따뜻한센드의 놀이터

제가 웹개발자로 일하면서 기초가 부족하여 고전한 기억이 아직도 생생합니다. 나라에서 제공하는 국비지원 자바교육 6개월 과정을 듣고 스스로 구직 활동을 하여 웹개발자로 들어섰습니다. 그때 실무에서 주어진 과제를 해결하지 못해 매우 고생했는데 물론 어려운것도 있었지만 잘 생각해보면 기초를 제대로 습득하지 못하여 발생한 오류가 태반이였습니다. 그 중에서 정수 연산에서의 자동 타입 변환이 된다는 것을 모르고 코딩한 적이 있는데요. 이번 시간에는 정수 연산에서의 자동 타입 변환을 알아보려고 합니다. 정수 타입 연산자가 산술 연산식에서 피연산자로 사용되면 int보다 작은 byte, short 타입의 변수는 자동으로 int 타입으로 변환이 됩니다. 그럼 저와 함께 알아보도록 하겠습니다.


1. 정수 연산에서의 자동 타입 변환


byte 타입 변수 value1과 value2를 더한 값을 byte 타입의 result1 변수에 대입하고 있는 걸 알 수 있습니다. 옳바른 수식 같습니다. 하지만 컴파일 에러가 발생합니다. 그 이유는 value1과 value2가 피연산자로 사용되었기 때문입니다. 이렇게 피연산자로 사용되면 int 타입으로 자동 타입 변환이 됩니다. 그래서 value1과 value2를 더한 값을 받을 변수도 int 타입으로 선언이 되어야 오류가 발생하지 않습니다.


byte 타입 변수 value에 20과 30을 더한 값을 저장하는 것을 알 수 있습니다. 그런데 오류가 발생하지 않습니다. 이유는 피연산자 20과 30은 변수가 아니므로 int 타입으로 변환을 하지 않기 때문입니다. 중요합니다.


피연산자가 무조건 int 타입으로 변환되는 것은 아닙니다. int 타입보다 허용 범위가 큰 long 타입이 피연산자로 사용되면 자동으로 long 타입 변수로 변환됩니다. 따라서 int 타입 value1과 long 타입 value2가 피연산자로 사용되면 int 타입 value1은 자동으로 long 타입으로 변환됩니다. 그래서 long 타입 변수 result를 선언하여 long타입으로 변환된 값을 받을 수 있습니다. 이제 정수 연산에서의 자동 타입 변환을 이해하셨을 것입니다. 이것으로 JAVA 자동 타입 변환 강제 타입 변환 알아보기 3편을 마치겠습니다. 긴 글 읽어주셔서 감사합니다.

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band