Java의 변수, 상수, 리터럴
수학에서 변수란 여러 가지 값으로 변할 수 있는 수를 나타낸다. 프로그래밍에서 변수는 어떠한 값을 저장할 수 있는 저장공간이며 저장되는 내용은 변수의 수학적 의미처럼 언제나 바뀔 수 있다.
값을 저장하려면 우선 변수를 선언(declaration)해야 한다. 자바에서 변수를 선언하려면 어떠한 데이터(자료형)를 저장할 것인지와 저장공간을 구분할 이름(변수명)을 명시해야 한다.
int x; // (데이터 타입) (변수명);
변수를 선언했다면 이제 값을 저장해야 한다. 변수에 값을 처음으로 저장하는 작업을 초기화(initialization)라고 하며 이는 대입 연산자(=)를 통해 이루어진다. 수학에서 ‘=’는 등호로 수의 같음을 나타내지만 자바와 같은 프로그래밍 언어에서는 값을 대입하겠다는 의미의 대입 연산자로 불린다.
x = 5; // (변수명) = (저장할 값);
// 짧게 하면 int x = 5; => 변수 선언 및 초기화
x = 3;
변수 x를 그림으로 나타내면 다음과 같다.
일반적으로 상수란 변하지 않고, 항상 일정한 값을 갖는 수를 말한다. 변수와 반대되는 개념으로 10, 3.14, A 등과 같이 그 자체로 값을 의미하는 값들을 뜻하지만 프로그래밍에서는 한번 값을 저장하면 다른 값으로 변경할 수 없는 저장공간을 의미한다. Java에서는 변수의 타입 앞에 final
이라는 키워드를 붙이면 상수가 된다. 상수의 이름은 대문자 스네이크 케이스로 표현하는 것이 관례이다.
final int MAX_VALUE = 100;
상수대신 그 자체로 값을 의미하는 고정된 값은 리터럴이라고 부른다.
- 변수(variable): 하나의 값을 저장하기 위한 공간
- 상수(constant): 값을 한번만 저장할 수 있는 공간
- 리터럴(literal): 그 자체로 값을 의미하는 것