Java 06 리터럴의 타입과 접미사
종류 | 리터럴 | 접미사 (대소문자 구별안함) |
논리형 | 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 |