변수의 타입이 있는 것처럼 리터럴에도 타입이 있다. 변수의 타입은 저장될 값(리터럴)의 타입에 의해 결정된다. 만일 리터럴의 타입이 없다면 변수의 타입도 필요없을 것이다.
리터럴 타입의 종류는 다음과 같다.
종류 | 리터럴 | 접미사 |
---|---|---|
논리형 | True, False | - |
정수형 | 123, 0b0101, 077, 0x5AF, 100L | L |
실수형 | 3.14, 3.0e8, 1.4F, 2.5D | F, D |
문자형 | 'A', '6' | - |
문자열 | "abc", "142", "True" | - |
정수형과 실수형에는 저장가능한 범위에 따라 여러 타입이 존재한다.
정수형의 경우 byte, short, int, long
으로 나뉘는데 long
타입 리터럴만 접미사 'L' 또는 'l' 을 붙인다.
실수형의 경우 float
와 double
로 나뉜다. flaot
타입 리터럴은 접미사 'F' 또는 'f' 를 붙이고, double
타입 리터럴은 접미사 'D' 또는 'd' 를 붙인다.
double
타입 리터럴의 접미사는 생략이 가능한데, 이는 정수형에서 int
타입이 기본 자료형인 것처럼 실수형에서 double
타입도 기본 자료형이기 때문이다.
이외에도 2, 8, 16진수로 표현된 리터럴을 변수에 저장할 수 있고 이를 표현하기 위해 접두사 '0b', '0', '0x'를 붙인다.
접미사와 접두사가 붙는 리터럴을 정리하면 다음과 같다.
리터럴 | 접두사 | 접미사 |
---|---|---|
2진수 | 0b | - |
8진수 | 0 | - |
16진수 | 0x | - |
long | - | L, l |
float | - | F, f |
double | - | D, d (생략가능) |
'A'와 같이 작은 따옴표로 문자 하나를 감싼 것을 문자 리터럴이라고 한다. 두 문자 이상의 조합은 큰 따옴표로 감싸야 하며 이를 문자열 리터럴이라고 한다.
문자열 리터럴은 " "안에 아무런 문자를 넣지 않는 것을 허용하며, 이를 빈 문자열이라고 한다. 그러나 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야한다.
char ch = 'J'; // 문자 한 개 저장
String name = "Java"; // 문자들의 조합을 저장
char empty = ''; // 에러, ''안에 반드시 하나의 문자 필요
char empty = ' '; // 허용, 공백 문자로 변수 empty를 초기화
String str = ""; // 허용, 내용이 없는 빈 문자열