[자바] 상수와 리터럴

June·2021년 1월 1일
0

자바

목록 보기
2/36

상수(constant)

상수(constant)는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한 번 값을 저자아면 다른 값으로 변경할 수 없다. 변수의 타입 앞에 키워드 'final'을 붙여줘야한다.

final int  MAX_SPEED = 10;

상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례이며, 여러 단어로 이루어져있는 경우 '_'로 구분한다.
(JDK1.6부터 상수를 선언과 동시에 초기화 하지 않아도 되며, 사용하기 전에만 초기화하면 되도록 바뀌었다. 그래도 상숭는 선언과 동시에 초기화하는 습관을 들이는 것이 좋다.)

리터럴(literal)

dnjsfo 12, 123, 3.14, 'A'와 같은 값들이 '상수'인데, 프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 이와 구분하기 위해 상수를 다른 이름으로 불러야만 했다. 그래서 상수 대신 리터럴이라는 용어를 사용한다.

final int MAX_VALUE = 100;  //MAX_VALUE는 상수이고 100은 리터럴이다

리터럴의 타입과 접미사

변수의 타입은 저장될 '값의 타입(리터럴 타입)'에 의해 결정되므로, 만일 리터럴에 타입이 없다면 변수의 타입도 필요업을 것이다.

정수형과 실수형에는 여러 타입이 존재하므로, 리터럴에 접미사를 붙여서 타입을 구분한다. 정수형의 경우에는, loing 타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고, 접미사가 없으면 int 타입의 리터럴이다.
10진수 외에도 2, 8, 16 진수로 표현된 리터럴을 변수에 저장할 수 있으며, 16진수라는 것을 표시하기 위해 리터럴 앞에 접두사 '0x' 또는 '0X'를, 8진수의 경우에는 '0'을 붙인다.

JDK1.7부터 정수형 리터럴의 중간에 구분자 '_'를 넣을 수 있게 되어서 큰 숫자를 편하게 읽을 수 있게 되었다.

long big = 100_000_000_000L;

실수형에서는 float 타입의 리터럴에 접미사 'f' 또는 'F'를 붙이고, double 타입의 리터럴에 접미사 'd' 또는 'D'를 붙인다. 실수형에서는 douoble이 기본 자료형이라서 생략 가능하다.

float pi = 3.14f;
double rate = 1.618d;

문자 리터럴과 문자열 리터럴

문자열 리터럴은 ""안에 아무런 문자도 넣지 않은 것을 허용하며, 이를 빈 문자열(empty string)이라고 한다. 그러나 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야 한다.

덧셈 연산자(+)는 피연산자가 모두 숫자일 때는 두 수를 더하지만, 피연산자 중 어느 한 쪽이 String이면 나머지 한 쪽을 먼저 String으로 변환한 다음 두 String을 결합한다.

0개의 댓글