Java 06 리터럴의 타입과 접미사

자바/2. 변수|2021. 3. 26. 07:37
종류 리터럴 접미사 (대소문자 구별안함)
논리형 false, true 없음
정수형 123, 0b0101, 077, 0xFF, 100L L
실수형 3.14, 3.0e8, 1.4f, 0x1.0p-1 f, d
문자형 'A', '1', '\n' 없음
문자열 "ABC", "123", "A", "true"  없음

 

int Num = 8 ; // 10진수

int biNum = 0b0101 ; // 2진수 접두사 0b, 0B 사용

int octNum = 010 ; //  8진수 10, 10진수로 8

int hexNum = 0x10 ; // 16진수로 10, 10진수로 16


JDK1.7부터 정수형 리터럴 중간에 구분자 ' _ ' 사용가능 (큰 숫자 용이)

 

long big = 100_000_000_000L ; // long big = 100000000000L ;

long hex = 0xFFFF_FFFF_FFFF_FFFFL ; // long hex = 0xFFFFFFFFFFFFFFFFL ;


대소문자 구별안함

 

float pi = 3.14f ; // 접미사 f 대신 F를 사용해도 된다. 생략불가

double rate = 1.618d ; // 접미사 d 대신 D를 사용해도 된다. 생략가능


10.     →    10.0d를 의미한다. (d는 생략가능)

.10    →      0.10d를 의미한다. (d는 생략가능)

10f    →      10.0f를 의미한다.

1e3    →      1000.0d를 의미한다.


변수와 리터럴의 타입 불일치

 

1. 범위가 변수 > 리터럴 인 경우는 OK

 

int i = 'A' ; // int > char , 문자 A의 65번 코드가 int 범위보다 작다.

long l = 123 ; // long > int 이다.

double d = 3.14f ; // double > float , float범위보다 double의 범위가 더 크다.

 

2. 범위가 변수 < 리터럴 인경우는 Error!!

 

int i = 30_0000_0000 ;  // int의 범위(-20억~20억)을 벗어남.

long l = 3.14f ; // long < float 실수의 범위가 정수의 점위보다 크다.

float f = 3.14 ; // float < double, doube의 범위가 float 범위보다 크다.

 

3. byte, short 변수에 int 리터럴 저장가능 ( 단, 변수의 타입의 범위 이내에서만)

 

byte b = 100 ; // OK, byte 범위 (-128~127) 에 속한다.

byte b = 128 ; // Error! , byte 범위를 벗어난다.

'자바 > 2. 변수' 카테고리의 다른 글

Java 08 문자열 결합  (0) 2021.03.27
Java 07 문자 리터럴과 문자열 리터럴  (0) 2021.03.27
Java 05 변수, 상수, 리터럴  (0) 2021.03.26
Java 04 변수의 타입  (0) 2021.03.26
Java 03 변수의 선언과 저장  (0) 2021.03.26

댓글()
구독