본문 바로가기
Java

[JAVA] 자바 - 상수, 리터럴, 형 변환

by Seong-Jun 2021. 11. 16.
728x90
반응형
SMALL

변하지 않은 상수와 리터럴, 변수의 형 변환

상수

상수란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 하지만 상수는 프로그램이 실행되는 동안 메모리에 저장된 값을 변경할 수 없습니다. 원주율, 1년 12개월 등을 상수로 할 수 있습니다. 상수를 사용하면 변하지 않는 값을 반복하여 사용하여 사용할 때 의미 있는 문자로 인식하기 쉽고 변하더라도 선언한 부분만 변경하면 되므로 여러 번 수정할 필요가 없습니다.

 

상수 선언하기

  • final 예약어를 사용하여 선언합니다.
  • 상수는 선언과 동시에 반드시 초기화해야 합니다.
  • 예제
final int MAX_NUM = 100;
final int MIN_NUM;

MIN_NUM = 0;

System.out.println(MAX_NUM);
System.out.println(MIN_NUM);

// MAX_NUM = 1000; error
  • 출력결과
100
0

리터럴

  • 프로그램에서 사용하는 숫자, 문자, 논리 값을 말합니다.
  • 변수와 상수와는 달리 데이터가 저장된 메모리 공간을 가리키는 이름을 가지고 있지 않습니다.
  • 리터럴은 상수 풀에 있습니다.
  • 정수 리터럴은 int로 실수 리터럴은 double로 저장됩니다.
  • 정수의 범위가 넘어가는 경우는 L, l을 float로 사용하는 경우는 F, f를 식별자로 써줘야 합니다.

 

형 변환

  • 서로 다른 자료형 간에 연산 등의 수행을 위해 하나의 자료형으로 동일하는 것입니다.
  • 묵시적 형 변환(자동 형 변환)과 명시적 형 변환(강제 형 변환)이 있습니다.
  • 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 됩니다.
  • 덜 정밀한 자료형에서 더 정밀한 자료형으로 형 변환은 자동으로 됩니다.
  • 예제
int iNum = 10;
byte bNum = (byte)iNum;

System.out.println(iNum);
System.out.println(bNum);

int iiNum = 255;
byte bbNum = (byte)iiNum;

System.out.println(iiNum);
System.out.println(bbNum);
  • 출력 결과
10
10
255
-1
  • 10과 같은 수는 byte로 담을 수 있으나 255처럼 byte에 담을 수 없는 수를 대입하면 이상한 값이 출력됩니다.
  • 예제 2
double dNum = 1.2;
float fNum = 0.9F;

int iNum1 = (int)dNum + (int)fNum;
int iNum2 = (int)(dNum + fNum);

System.out.println(iNum1);
System.out.println(iNum2);
  • 출력 결과
1
2

 

 

728x90
반응형
LIST

댓글