1.5.5 상수
식별자를 붙여 값을 저장하는 것을 변수라고 부른다.
변수에 값을 대입할 때는 =을 사용한다. 대입한 값은 나중에 다른 값으로 변경할 수 있다. 변수의 특징은 몇 번이라도 값을 대입할 수 있다는 데이 있다.
반면에 한번 대입한 값을 나중에 변경하고 싶지 않을 때가 있다. 자바에서는 final 제한자를 붙여 변수에 값을 다시 대입하는 것을 금지할 수 있다. final 제한자가 붙어 값을 다시 대입할 수 없는 데이터를 상수라고 한다.
단, 참조형 변수는 변수가 참조하는 주소를 변경할 수 없게 될 뿐이므로 참조하는 인스턴스의 값이 바뀌는 것은 금지하지 않는다.
예를 들어 다음 코드는 오류가 난다.
final Date date1 = new Date();
date1 = new Date(); // 오류
하지만 다음 코드는 올바르게 작동한다.
final Date date2 = new Date();
date2.setTime(0);
1행과 2행의 값을 출력하면 다음처럼 이늣턴스의 값이 바뀐 것을 확인할 수 있다.