티스토리 뷰

BackEnd/JAVA

[Ch.02] 상수와 리터럴

JINSUKUKU 2021. 2. 20. 03:16

📌 상수와 리터럴

상수는 변하지 않는 값을 저장하는 공간을 의미하며, 한 번 초기화하면 다른 값으로 변경할 수 없다. 변수와 같은 방법으로 선언하지만, 상수임을 알리기 위해 선언 시 자료형 앞에 final 키워드를 붙이고 상수명을 대문자로 정한다.

상수는 코드의 이해를 돕고, 수정을 쉽게 하기 위해 사용한다.

 

1. 상수의 선언과 초기화

final 자료형 상수명 = 값;

✔  상수는 반드시 선언과 동시에 초기화해야한다.

✔  상수의 이름은 대문자로 하고, 여러 단어로 이루어지는 경우 언더바를 사용하는 것이 암묵적인 약속이다.

final int MAX_SCORE = 100;

✔  상수는 이와 같이 변하지 않는 값을 의미하기 때문에, 기존의 상수는 리터럴이라 부른다.

 

   변수(variable)    값을 저장하기 위한 공간 (수정 가능)
   상수(constant)    변하지 않는 값을 저장하는 공간 (수정 불가능)
   리터럴(literal)    그 자체로 값을 의미
//자료형 변수명 = 리터럴;
int score = 80;

//상수키워드 자료형 상수명 = 리터럴;
final int MAX_SCORE = 100;

 

2. 리터럴 타입과 접미사

✔  변수나 상수의 자료형은 저장될 리터럴의 자료형에 의해 결정되므로, 당연히 리터럴에도 자료형이 존재한다.

✔  저장 공간과 리터럴의 자료형이 일치하지 않아도 표현 범위에 따라 허용되기도 한다.

(예) long변수에 int 리터럴 저장 → 더 큰 범위에 작은 범위의 리터럴을 저장하기 때문에 허용. 반대의 경우에는 컴파일 에러 발생

 

✔  정수형과 실수형은 여러 자료형으로 나뉘므로, 접미사를 붙여 구분한다. (접미사는 대소문자를 구분하지 않는다)

✔  가장 자주 사용되는 자료형의 경우 접미사 생략 가능. (정수형의 경우 int, 실수형의 경우 double이 속한다).

✔  소수점이나 10의 제곱을 의미하는 e, E, 혹은 실수형 리터럴의 접미사를 포함하고 있다면 실수형 리터럴로 간주.

 

종류 자료형 접미사
논리형 boolean  
문자형 char  
정수형 byte, short, int  
long l , L
실수형 float f , F
double d , D


✔  그리고 10진수 외에 2진수, 8진수, 16진수로 리터럴을 사용할 수 있는데, 접두사를 붙여 구분한다.

✔   2진수의 접두사는 0b ,  8진수의 접두사는 0, 16진수의 접두사로는 0x 또는 0X를 사용한다.

int binNUm = 0b10;	// 2진수:10 	→ 10진수로는 2
int octNum = 010;	// 8진수:10 	→ 10진수로는 8
int hexNum = 0x10;	//16진수:10 	→ 10진수로는 16

✔  JDK 1.7부터 정수형 리터럴의 중간에 구분자로 언더바를 사용할 수 있게 되어 가독성이 높아졌다.

✔  자주 사용하지는 않지만 pn는 2의 n제곱을 의미하며, p를 사용해 실수 리터럴을 16진 지수 형태로 표현할 수도 있다.

int num = 1_000_000;
0x1p1	= (1 x 16^0) x 2^1	= 1.0 x 2	= 2.0

 

3. 문자 리터럴과 문자열 리터럴

✔  작은따옴표로 문자를 하나 감싼 것은 '문자 리터럴'

✔  큰 따옴표로 문자열을 감싼 것은 "문자열 리터럴"

✔  "문자열 리터럴"은 빈 문자/공백을 허용하지만, '문자 리터럴'은 빈 문자/공백을 허용하지 않는다.

✔  사실 문자열은 String 클래스이므로 객체를 생성해 참조 변수를 사용해야 하지만, 특별히 아래와 같은 표현도 허용한다.

✔  그리고 문자열은 덧셈 연산자를 사용해 문자열을 결합할 수 있다.

String str1 = new String("Hello-");
String str2 = "World";
System.out.println( str1 + str2 );   //Hello-World

 

 

 

 

[참고] 자바의 정석

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday