JAVA

상수와 리터럴

seungmin576 2024. 12. 3. 17:51

상수(constant)

항상 변하지 않는 값을 말한다.

자바에서는 final 예약어를 사용해 선언한다.

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

상수 이름은 대문자를 주로 사용하고, 여러 단어를 연결하는 경우에 _ 기호를 사용하면 보기 좋음.

프로그램 내부에서 반복적으로 사용하고, 변하지 않아야 하는 값을 상수로 선언하면 좋음.

 

리터럴(literal)

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

char ch = 'A';
int num = 10;
final double PI = 3.14;

위에서 사용한 'A'. 10, 3.14와 같은 문자와 숫자를 리터럴 혹은 리터럴 상수라고 한다.

리터럴은 변수나 상수 값으로 대입할 수 있다.

프로그램이 시작할 때 시스템에 같이 로딩되어 특정 메모리 공간인 상수 풀(constant pool)에 놓인다.

숫자가 변수에 대입되는 과정은 일단 숫자 값이 어딘가에 메모리에 쓰여 있고,

이 값이 다시 변수 메모리에 복사되는 것이다.

리터럴  -> 상수 풀 -> 변수

 

자바에서 정수를 표현하는 메모리의 기본 크기는 4바이트인데 상수 풀도 마찬가지이다.

예시로 리터럴 10은 int형(4바이트)으로 처리된다.

long num = 12345678900;은 4바이트 크기에 들어갈 수 없기 때문에 long형, 즉 8바이트로 처리하라고 컴파일러에 알려 주어야 한다.

따라서 이 리터럴은 'long형으로 저장 되어야 한다'는 의미로 리터럴 뒤에 식별자 l이나 L을 쓰는 것이다.

 

마찬가지로 모든 실수는 double형(8바이트)로 처리되는데

float pi = 3.14;의 경우 3.14는 double 형이고, 변수 pi는 float형이므로 값을 대입할 수 없다.

따라서 3.14를 float형으로 처리하도록 float pi = 3.14F;와 같이 식별자 f나 F를 사용해야 한다.

 

 

'JAVA' 카테고리의 다른 글

연산자  (0) 2024.12.06
형 변환  (1) 2024.12.06
실수 자료형, 논리 자료형  (0) 2024.12.02
문자 자료형 연습 / 'A'와 "A"는 다르다.  (2) 2024.12.02
3일차 자료형  (2) 2024.11.21