본문 바로가기
JAVA

[JAVA(자바)] 리터럴이란?

by 초이사 2022. 12. 19.

리터럴

- 프로그램에 직접 표현된 값으로 그 값 자체를 의미한다.

- 변수나 상수와 달리 데이터가 저장된 메모리 주소를 의미하지 않는다.

 

상수란 변수와 달리 실행중에 바꿀 수 없는 값을 말한다.

//final을 이용해서 상수 선언
flnal double PI = 3.141592;

//상수는 실행 중에 변경불가, 아래와 같이 실행하면 컴파일 에러 발생
PI = 3.14;

 

 

 

정수 리터럴

- 2진수 : 0B 또는 0b로 시작하고 0와 1로 작성한다.

int a = 0b1001 //10진수 - 9
int b = 0b10100 //10진수 - 20

10진수로 변환하는 방법은 b로 예를 들면 2의4승 x1 + 2의2승x1 = 20이다.

 

- 8진수 : 0으로 시작하고 0~7 숫자로 작성한다.

int a = 012 // 10진수 - 8의1승x1 + 8의0승x2 = 10

 

-10진수 : 0~9 숫자로 작성한다.

int a = 12;

 

-16진수 : 0x 또는 0X로 시작하고 0~9 숫자난 A~F, a~f로 작성한다.

int a = 0xB3; //10진수 - 16의1승x11 + 16의0승x3 = 179

10진수로 변환할 때, A=10, B=11, C=12, D=13, E=14, F=15로 생각하고 계산한다.

 

long 타입 : 정수 뒤에 l이나 L을 작성한다.

정수 리터럴은 보통 int형으로 인식하기 때문에 int형을 초과하는 경우 L을 붙여 long타입으로 인식하게 해야 한다.

long a = 20L;
long b = 10000000000000; // 컴파일에러 -> 10000000000000L로 작성해야함

 

 

 

문자 리터럴

char 타입 : 작은 따옴표로 감싸서 작성한다.

유니코드가 정수이기 때문에 정수 타입에 속한다. 즉, 유니코드 숫자를 대입해서 문자를 저장할 수도 있다.

int ch1 = 'A';
int ch2 = 65; //출력시 A가 출력된다. A의 유니코드 65

int ch3 = '가';
int ch3 = 44032; //출력시 가 출력된다. 가의 유니코드 44032

//문자 대입없이 초기화를 원할 경우
int c = ''; //컴파일에러
int c = ' '; //공백을 대입해 초기화해야한다. 공백의 유니코드 32

 

*특수문자 리터럴

종류 의미
'\b' 백스페이스(backspace)
'\t' 탭(tab)
'\n' 라인피드(line feed)
'\f' 폼피드(form feed)
'\r' 캐리지 리턴(carriage return)
'\"' 이중 인용부호(double quote)
'\'' 단일 인용부호(single quote)
'\\' 백슬래시(backslash)

 

 

 

실수 리터럴

float 타입 : 실수 뒤에 f나 F를 작성한다.

double타입 : 실수 뒤에 d나 D를 작성한다.

//10진수
double a = 0.25;
double b = -0.25;
double a = 6e2; // 6.0 x 10의2승 = 600.0
double b = 0.15E-2 //0.15 x 10의-2승 = 0.0015

//컴파일러는 보통 실수를 double형으로 인식하기 때문에 f를 써서 float형으로 인식하게 해야 한다.
float c = 3.14f;

 

 

 

논리 리터럴

boolean 타입

boolean a = true;
boolean b = false;
boolean c = 10>5; //true와 같음

 

 

댓글