[JAVA] 상수와 리터럴

DANI·2023년 12월 2일
0

JAVA를 공부해보자

목록 보기
17/29
post-thumbnail

상수는 변하지 않는 값(final)이라고만 생각했는데, 리터럴도 변하지 않는 값이라고 해서.. 사실 리터럴은 들어보기만 했지 깊게 생각해본 적이 없다.. 이제 자세히 알아보자!



📕 상수와 리터럴의 공통점

변하지 않는 값. 불변의 값


📑 상수(constant) 란?

상수는 변하지 않는 변수를 뜻한다.

참조변수를 상수로 지정 할 때, 참조변수에 넣은 인스턴스 안의 데이터 까지도 변하지 않는 줄 착각 할 수 있지만, 참조변수가 상수(참조변수 메모리의 주소값이 변하지 않는다라는 의미)지, 그 주소가 가리키는 데이터들까지 상수라는 의미가 아니다.

final Animal animal = new Animal("강아지", "포유류", "멍멍");
animal.setName("멍멍이"); // 가능

즉, 여기서 상수는 animal을 뜻한다.


📑 리터럴(literal) 이란?

리터럴은 데이터 그 자체를 뜻 한다.

final int num = 1;
int year = 2021;

즉, 여기서 상수는 num을 뜻하고, '1'이 '리터럴'이 된다.
year은 변수가 된다.



여기서 클래스 데이터는 리터럴이 될 수 없다.
언제든지 값이 바뀔 수 있기 때문이다.

데이터가 변하지 않도록 설계를 한 클래스를 불변 클래스라 칭한다.(immutable class)

참고 : https://mommoo.tistory.com/14

0개의 댓글