[자바의 정석 - 기초편] ch2-6 리터럴의 타입과 접미사

[자바의 정석 - 기초편] ch2-6 리터럴의 타입과 접미사

6. 리터럴의 타입과 접두사 , 접미사

접두사,접미사는 대소문자 구분x

파란줄의 접미사 정수형 long과 실수형 float만 신경쓰면 된다

정수형에서 byte,short은 int로 같이 묶여져 따로 접미사를 쓰지 않고 long만 접미사L 붙여주면 되고,

실수형에서 보통 double의 d는 생략되고 float의 f만 접미사 쓰는게 관례

boolean 타입 : true 또는 false 만 저장가능

boolean power = true;

char 타입 : 하나의 문자만 저장가능

char ch = 'A'; // 하나의 문자는 홑따옴표 ' '로

String 타입 : 여러 문자 저장가능

String str = "ABC"; // 여러 문자는 큰따옴표 " "로

'

' : 줄 바꿈 문자 . 하나의 문자 . ' ' 로 되어있는걸 봐도 알 수 있음

byte 타입 : 접미사가 없기에 int 타입을 사용 . 즉 , 접미사 x

대신 byte타입 범위 안에 저장할 수 있는 값이여야함

범위 : -128~127 ( 범위 벗어나면 에러)

byte b = 127; // literal 127(127 값 자체)의 타입은 int

int 타입 : 앞에 접두사를 붙여서 진수를 나타낼 수 있음

0b가 접두사로 붙으면 2진수 0b0101

한계값이 약20억까지만 사용가능. 이후의 더 큰 값은 long처리해야함

int i = 100; // 10진수

int oct = 0100; // 8진수

int hex = 0x100; // 16진수

long 타입 : int 의 한계값이 넘어서는 수 약 20 억 이후부터 써야하는 정수타입

long타입 쓸 때 접미사L을 안붙여도 괜찮지만, int의 한계값을 넘는 약20억부터는 접미사L 필수

long 1 = 10_000_000_000L; // 0이 10개라 100억

long 1 = 1 100; // ok

float 타입 : 실수 . 접미사 필수

float f = 3.14f;

double 타입 : 실수 . 접미사 d 생략가능

double d = 3.14d; // ok

double d = 3.14; // ok

10. → 10.0 : 10.0에서 소수점 뒷자리0이 생략된 의미. 접미사 없으니 double타입

.10 → 0.10 : 0.10에서 앞0이 생략된 의미. 접미사 없으니 double타입

10f → 10.0f : 10f와 10.0f와 같은 의미

le3 → 1000.0 : 실수형. 접미사 없으니 double 타입

기호 e는 10의 n제곱을 의미. 값이 1000이지만 기호e는 실수형에서 쓰임

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

1) 범위가 ' 변수 > 리터럴 ' 인 경우 , ok

(그릇) (물건)

int i = 'A'; // int > char

long 1 = 1 123; // long > int

double d = 3.14f; // double > float

2) 범위가 ' 변수 < 리터럴 ' 인 경우 , 에러

int i = 30_0000_0000; // int의 범위(약20억) 벗어남. error

long 1 = 1 3.14f ; // long < float : 실수형이 정수보다 넓다. error

(롱타입 8byte, 플로트타입 4byte)

float f = 3.14; // float < double 더블이 플로트보다 크다. error

3)byte, short 변수에 int 리터럴 저장가능

byte b = 100; // ok (단, byte 범위-127~127 사이에 속해야함

byte b = 128; // error

해보기

from http://rise-up.tistory.com/128 by ccl(A) rewrite - 2021-12-19 20:01:32