상수의 데이터 타입

쌩 초보의 개발로그·2022년 4월 13일
0

자바 공부

목록 보기
3/10
post-thumbnail

상수

변수 : 변하는 값

상수 : 변하지 않는 값을 의미

변수의 대착점에 있는것은 상수 (1, 2, 3.... 1.5, 2.5, 3.5...)이다.

int a = 3;

위 코드를 보면 변수 a를 선언 후 대입연산자(=)를 사용해 a는 3의 값을 가지게 되었다.

3 = 5;

위 처럼 하면 컴파일이 되지않고 에러로 뜨게 된다. 그 이유는 상수는 변하지 않는 값을 의미하기 때문에 3이 5가 될수는 없기 때문이다. 그리고 그 값을 상수라고 한다.

정수의 표현

데이터 타입이 정수인 상수의 기본 데이터 타입이 무엇일까?

바로 int이다. 이때 int는 최대로 표현할 수 있는 수가 2147483647 까지이다.

아래의 코드를 살펴보자

int a = 2147483648;

코드를 실행 시켜보면 에러가 나게 된다.

그 이유는 최대로 표현할 수 있는 수의 2147483647보다 1이 더 높기 때문에 int로 실행이 되지않는것이다.

그러면 이때 int보다 더 큰 값을 표현할 수 있는 long타입을 사용해보자

long a = 2147483648;

int보다 더 큰 값을 표현할 수 있는 long을 사용했으니깐 정상적으로 실행이 되었을까?

정답은 아니오 이다. 그 이유는 저기에 주어진 2147483648 이라는 변수값이 기본적으로 int로 설정이 되어있기 때문이다.

그러면 long으로 데이터 타입을 바꿔서 표현을 하는 방법은 어떻게 해야할까.

2147483648 값에 long 타입을 명시해주면 된다.

long a = 2147483648L; 

위 처럼 변수값 끝에 L을 작성해 이 변수값은 long의 데이터 타입으로 선언을 하겠다라고 명시를 했기 때문에 정상적으로 실행이 되는것을 살펴볼 수 있다.

그러면 long으로 변수를 선언할 수 있는 방법을 살펴 보았는데, byte나 short는 int보다 작은 데이터 형식인데 동일하게 B나 S를 명시를 해줘야 표현이 될까?

byte a = 50;
short b = 150;

코드를 실행하면 오류가 나지 않는다? 왜 그럴까 byte나 short의 표현을 명시해주지 않았는데 어떻게 실행이 될까?

그 이유는 자바가 byte나 short타입에 대해서는 int형을 허용을 하기 때문이다.

실수의 표현

이번 글에서는 상수의 데이터 타입에 대해서 공부를 한다.

자바에서는 각 상수에, 즉 정수와 실수에는 각각 주어지는 데이터 타입이 있다.

앞 서 공부했던 변수에서 int에는 1.1, 2.2 와 같은 실수를 넣고 실행을 하게 된다면 에러가 뜨는것을 확인했었다.

그럼 이때 실수의 데이터 타입은 뭐가 있을까? 바로 float와 double이 있다.

앞에 double로 실행을 했을때는 실수를 변수로 선언을 하였을때 정상적으로 실행이 되었기 때문에 float로 실행을 해보자.

float a = 2.2;

위 처럼 float로 실행을 하게 되면

"java: incompatible types: possible lossy conversion from double to float"

라는 에러가 뜨게 되는데 이런 에러는 왜 뜨게 될까?

그 이유는 자바에서 실수형 상수는 double의 데이터 타입이 기본적으로 적용이 되어있기 때문이다.

그럼 이때 float를 어떻게 하면 사용을 할 수 있을까?

2.2를 float의 데이터 타입이라고 명시를 해주면 된다.

float a = 2.2F;

자바의 데이터 타입

profile
안녕하세요 쌩 초보 장휘주 입니다. 열심히 하는 개발자가 될게요.

0개의 댓글