Java - 상수(constant)의 데이터타입 / 형변환

까마앙소·2022년 11월 30일
0

상수의 데이터타입

  • 상수 (constant) : 변수와 대비되는 개념으로 변하지 않고 고정된 값

상수도 변수와 마찬가지로 데이터 타입이 존재하고
변수와 상수의 데이터 타입이 일치해야 할당이 가능하고 에러가 발생하지 않는다.

int a = 2.2;

위와같이 변수 a을 int 타입으로 선언을 하고 상수 2.2를 할당하려고 하면
상수 2.2는 실수 타입이기 때문에 오류가 발생한다.

같은 정수나 실수 사이에서도 같은 문제를 발견할 수 있다.

long a = 234234256843;

위와 같이 작성을 해도 오류가 발생함을 알 수 있다.
이는 상수의 타입이 default 값인 int 형으로 데이터 타입이 정해져있지만 int의 범위를 넘어서기 때문이다.
따라서 상수 부분의 데이터타입도 long 타입으로 하기위해 값 뒤에 "L"자를 붙여서 데이터의 타입을 명시해줌으로 해결할 수 있다.

long a = 234234256843L;

형 변환

  • 형 변환 : 정해진 변수와 상수의 데이터 타입을 변환시키는 것

자동형변환

자동 형 변환 : 변수의 타입과 상수의 타입이 일치하지 않더라도 데이터의 손실이 일어나지 않는 경우 자동으로 형 변환을 해준다. 오류가 발생한다는 것은 데이터손실이 발생하는 경우로 확인이 필요하다.
즉, 자동 형 변환은 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용

double c = 3.3F;

위와같은 코드에서 변수c는 double로 상수는 float로 선언이 되었지만, 상수 3.3은 float에서 double로 변환될 때 데이터 손실이 일어나지 않기 때문에 최종적으로 변수 c에 할당될 때는 double 타입으로 자동으로 변환된다.

int a = 3;
float b = 2.7F;
double c = a + b;

위와같은 연산식을 실행하면 int와 float 모두 double보다 좁은 데이터 타입이기때문에 최종적으로 c는 5.7의 double 타입의 값을 가지게 된다.

명시적 형 변환

명시적 형 변환 : 수동으로 데이터 변환을 표현해주는 방식

float c = (float)2.2;
int a = (int)20.3F;



0개의 댓글