상수와 리터럴

1. 상수 선언하기

<aside> 💡

프로그램에서는 변하지 않는 수도 필요하다. 예를 들어 원의 넓이를 구할 때 원주율을 3.14라고 정했다면 이 값은 변하지 않는 값이다. 이렇게 항상 변하지 않는 값을 ‘상수(constant)’라고 한다. 자바에서 상수는 다음처럼 final 예약어를 사용해 선언한다.

</aside>

final double PI = 3.14;
final int MAX_NUM = 100;

  1. 상수 이름은 주로 대문자를 사용하고, 여러 단어를 연결하는 경우에 _ 기호를 사용하면 보기 좋다. 한 번 선언한 상수는 변하지 않기 때문에 선언과 동시에 값을 초기화 해줘야 한다. (가끔 선언만 하고 사용 하기 전에 값을 지정하기도 한다.)
package chapter2;

public class Constant {
    public static void main(String[] args) {
	       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;  // 오류 발생. 상수는 값을 변경 할 수 없음
    }
}

2. 상수를 사용하면 편리한 이유

<aside> 💡

프로그램 내부에서 반복적으로 사용하고, 변하지 않아야 하는 값을 상수로 선언하여 사용하면 좋다. 상수로 선언해서 사용하면 값이 변해야 할 때 전부 수정 할 필요 없이 상수를 선언한 부분만 수정하면 된다.

</aside>


3. 리터럴

<aside> 💡

리터럴(literal)이란 프로그램에서 사용하는 모든 숫자, 문자, 논리 값(true,false)를 일컫는 말이다.

char ch = ‘A’;

int num = 10; —> ‘A’,10,3.14와 같은 문자와 숫자를

final double PI = 3.14; 리터럴, 혹은 리터럴상수 라고 한다.

</aside>

  1. 리터럴은 프로그램이 시작할 때 시스템에 같이 로딩 되어 특정 메모리 공간인 상수 풀에 놓인다.

  2. 자바에서 정수를 표현하는 메모리의 기본 크기는 4바이트이다. 이는 상수 풀에서도 마찬가지인데, 예를 들어 long num = 12,345,678,900; 은 4바이트 크기에 들어갈 수 없기 때문에 8바이트로 처리하라고 알려줘야 하기 때문에 식별자 L,L을 써주는 것이다.

  3. 실수도 마찬가지로 모든 실수 리터럴은 double형으로 처리되는데,

    float PI = 3.14;는 double형 이고 변수 PI는 float형 이므로 값을 대입 할 수 없기 때문에 식별자 F,f를 사용 하는 것이다.