본문 바로가기
Error

long타입 0과 0L

by danny-j 2022. 11. 10.

왜 long타입에는 L을 붙히는 걸까

강의를 듣다가 문득 궁금해졌다.

저 L은 안붙여도 오류 안나는데 왜 붙이는지

sequence로 int타입이 아닌 long타입을 쓰는 이유도

 

L을 안붙힌다면 아래와 같은 상황이 발생

2147483647에서 1만 더한 2147483648이 오류

 

이유

  • int타입인데 너무 숫자가 너무 크단다(int는 2147483647까지만 가능)
  • long타입의 값은 변수에 담기전에 임시메모리에 저장되는데
  • 이때 임시로 저장하기 위해 사용하는 기본 데이터 타입이 int라서이다.

 

마무리

앞서 말했던 궁금증중 하나였던

sequence로 long타입을 쓰는 이유도 이해가 됐다.

만약 sequence를 int로 선언을 했는데

2147483648번째 유저가 회원가입을 한다면

오류가 날테니...

 

+ float도 임시메모리에서 double로 인식하니까 f를 붙혀주자

 

댓글