형변환
자료형들을 강제로, 혹은 자동으로 변환하는 경우가 있다. 같은 형식의 데이터 타입을 변환하기도 하고, 다른 형식의 데이터 타입 간의 변환이 이루어지기도 한다.
형변환의 포함관계
byte < short < int < long <<< float < double
용량 순서로 기억하면 편하며 정수보다는 실수가 큰 범위이다.
강제 형변환(명시적 형변환)
int a = 128;
short b = (short) a;
byte c = (byte) a; // -128 ~ 127
큰 데이터 타입을 작은 데이터 타입으로 변환하거나, 두 가지 데이터 타입이 자동 변환될 수 없을 때 직접 지정하여 변환하는 것이다.
변수 c처럼 -128이라는 뜬금 없는 값이 나온 이유는 byte 타입이 128이라는 숫자를 포용할 수 없기 때문에 오버플로우가 일어난 것이다.
자동 형변환(암시적 형변환)
int m = 80;
double n = m;
처음에 대입한 변수 m은 80이라는 정수형으로 출력되고, n은 80.0은 실수형으로 출력된다.
m에 있는 정수형 값이 n에 대입되기 전에 double로 형변환이 되기 때문에 실수형으로 출력된 것이다.
int e = 10;
short f = 20;
short g = (short) (e + f);
연산이 일어날 떄는 큰 범위를 따라간다. 연산에 대해서 형변환를 하고 싶다면 연산이 포함된 표현식에도 괄호()를 하여 결과물에 대해 전체를 형변환 하는 코드를 작성해야한다.
'Back-End > Java' 카테고리의 다른 글
연산자 (0) | 2023.05.10 |
---|---|
콘솔 입출력 (0) | 2023.05.09 |
String 문자열 (2) | 2023.05.09 |
변수와 자료형, 그리고 상수 (0) | 2023.05.08 |
Java란? (0) | 2023.05.02 |