본문 바로가기
JAVA

[자바] 상수와 리터럴

by 감자b 2024. 12. 24.

상수 : 값을 변경할 수 없는 변수

  • 상수에 넣는 데이터는 숫자, 클래스 같은 데이터가 들어옴
  • 이 때 상수가 값을 변경할 수 없다고 해서 상수의 데이터가 변하지 않는다고 착각하지만 참조변수의 주소값이 변하지 않을 뿐 주소가 가리키는 데이터까지 변하지 않는다는 의미가 아님

리터럴 : 개발자가 직접 입력한 고정된 값(데이터)으로 리터럴 자체는 변하지 않음

  • 변수에 할당이 가능
  • 고정 값을 나타내는 표기법
  • 보통 인스턴스는 동적이므로 리터럴이 될 수 없지만 불변 클래스는 리터럴이 될 수 있음(값이 변한다면 새로운 객체를 만들게 되므로). 즉 리터럴은 기본형 데이터를 나타내지만 예외적으로 Immutable Class, VO Class역시 리터럴이라고 함
int a = 100; // 정수 리터럴 100
double b = 10.5; // 실수 리터럴 10.5
boolean c = false; // 불리언 리터럴 false
char d = 'A'; // 문자 리터럴 'A'
String e = "Hello world"; // 문자열 리터럴 "Hello world"
int a = 1 + 2; // 1 + 2 는 리터럴 X (표현식), 1과 2 각각은 리터럴

 

리터럴 대신 상수를 사용하면 수정 사항을 적용하기도 용이해지고 개발자가 일일이 리터럴을 기억할 필요가 없음