자바의 정석 리터럴의 타입과 접미사 정리

BackEnd

 

국비 수업을 듣기 전에 예습을 위해

자바의 정석 기초 편을 보고 있다

 

변수에 대해 배우는 챕터 2번에서

 

리터럴의 접두사와 접미사에 대해 배우고 있는데

 

영어시간도 아닌데 접두사 접미사라니 혼란스럽다

 

아 나는 왜 이렇게 모르는 게 많을까

 

선생님이 차근차근 설명해 주시는데 아무리 들어도 이해가 가질 않아서

 

헛소리일 수도 있지만 일단 여기에 메모 좀 해보려고 한다

 

먼저 종류에 대해 적어보면

 

논리형

정수형

실수형

문자형

문자열

 

이렇게 종류가 있다고 한다

 

논리형은 false , true 리터럴이 있고 접미사는 없다

 

정수형은 123, 0b0101, 077, 0xFF, (전부 int 타입) 100L은 (L이 붙어서 long 타입) 리터럴이 있는데 사실 이해가 안 간다 ^^

접미사로는 대문자 L이 있다고 한다

 

실수형은 3.14, 3.0e8, 1.4f, 0x1.0p-1 리터럴이 있고

접미사로는 f 와 d 가 있다

 

f는 float d는 double

d는 생략 가능하다 2개 중 1개만 써도 되기 때문에

f를 자주 쓴다

 

정수형 L 실수형 f만 신경 쓰면 된다

 

접미사는 대소문자를 구별하지 않는데

 

소문자 l 은 숫자 1과 혼동하기 쉽기 때문에 대문자 L을 쓰는 게 좋다

 

boolean power = true; or false;

boolean 타입은 true or false만 올 수 있고 그 외에는 에러가 뜬다

 

캐릭터 타입인 char = 'A';

1개의 문자(문자형)만 저장 가능 작은따옴표로 묶어야 하고 접미사는 없다

 

여러 문자 (문자열)는 큰따옴표로 묶어야 하고 접미사는 없다

String str = "ABC";

 

 

'\n'는 역슬래쉬로 표현하는 줄바꿈 문자이다

 

byte b = 127;

바이트 타입 변수 범위의 값 -128~127

위 127은 범위에 들어가서 저장 가능

 

byte b = 128; // 범위에 없어서 에러가 나온다

 

int i = 100; // 10진수 (접두사가 없음)

 

int oct = 0100; // 8진수

 

int hex = 0x100;// jdk 1.7부터 접두사 0b가 붙으면 2진수 0x가 붙으면 16진수

 

long l = 10_000_000_000L; int 최댓값 대략 20억, 20억이 넘으면 롱 타입이라서 접미사 대문자 L 붙여야 함 안 붙이면 에러 나옴

jdk 1.7부터 도입된 것으로 _ 언더바는 숫자를 알아보기 쉬우라고 넣는 것 원하는 위치에 넣어도 되지만 보통 000마다 넣는 게 좋음

 

long l = 100; // OK

 

float f = 3.14f; // f는 생략 불가 생략하면 더블 타입이 됨으로 필이 생략하지 말고 적어줘야 함

 

double d = 3.14d; (d는 생략 가능)

 

 

변수의 타입과 리터럴의 타입은 항상 일치해야 한다

 

일치하지 않더라도 허용되는 범위가 있으니 또 공부해야 함

 

 

 

막간 퀴즈

 

10. -> 10.0에서 0이 생략됨

.10 -> 0.10에서 앞에 있는 0이 생략됨

위 2개는 실수형 (*소수점이 있어서* 접미사가 없으니 더블형임 )

 

10f-> 실수형 접미사 f가 붙어서 실수형임

10.0f와 의미가 같다

 

 

1e3 -> 기호 e는 실수형에 사용돼서 실수형이고 e는 10n 제곱

1000.0d 와 같은 뜻이며 더블 타입

 

 

실수형 접미사는 리터럴의 소수점이나 10의 n 제곱을 의미하는 기호 e가 들어가 있으면

실수형임을 잘 이해하고 있어야겠다

 

 

 

머리 안 쓰고 살다가 갑자기 공부하고 내용 정리하려니까

머리가 터질 것 같아

 

남들 4년 빡세게 하고 또 취준하고 그렇게 해서 개발자 된다는데

 

난 이제 시작하는데 당연히 어려운 게 맞고 힘든 게 맞는데

 

이 와중에 적성이 맞냐 아니냐 따지려고 했던 나 자신에게 헛웃음만 나온다

 

일단 열심히 해보자

 

아직 시작도 안 했다!

 

 

 

 

'BackEnd' 카테고리의 다른 글

관심사의 분리, MVC 패턴 - 실습  (0) 2022.12.15
관심사의 분리, MVC 패턴 - 이론  (0) 2022.12.15
Base64 64진법이란?  (0) 2022.12.15
텍스트 파일 vs 바이너리 파일  (0) 2022.12.15
스프링 MVC 공부  (0) 2022.09.14