본문 바로가기
Java

자바7 업데이트 - 숫자 리터럴 구분자

by kellis 2020. 10. 20.

자바 7부터는 숫자 리터럴의 숫자 사이에 언더스코어(_)를 사용할 수 있습니다. 이 구분자를 사용하면 의미 있는 숫자끼리 그룹화하는 것이 가능하며, 이로 인해 코드의 가독성이 높아집니다.

int noUnderScore = 200000000;
int useUnderScore = 200_000_000;
 
long noUS = 9223372036854775800L;
long useUS = 9_223_372_036_854_775_800L;

정수형 int의 기본 데이터 범위는 ~2147483648 ~ 2147483647이고, long의 경우에는 이보다 훨씬 큰 -9223372036854775808 ~ 9223372036854775807입니다. 따라서 큰 자릿수의 숫자일 경우 한눈에 파악하기가 어렵기 때문에 언더스코어를 사용하는 것이 더 편리합니다. 

 

단, 자바에서 숫자 리터럴에는 단순히 int나 long 외에도 float이나 16진수 등 여러 표현이 존재하기 때문에, 규칙이 존재합니다.  숫자 리터럴 내에서 아래의 위치에서는 언더스코어를 사용할 수 없습니다. 

  • 숫자의 맨 앞, 맨 뒤
  • 소수점의 바로 앞, 뒤
  • F혹은 L의 앞
  • 진수를 나타내는 문자 위치

 

사용할 수 없는 위치가 어디인가, 예시로 살펴보도록 하겠습니다. 

//아래 경우는 모두 언더스코어가 사용이 불가능한 위치로, 이것만 조심하면 숫자 리터럴 어느 위치에서든 언더스코어 사용이 가능합니다. 
 
int useInHead = _1234;
int useInTail = 1234_;
 
float frontOfDP = 1234_.5678F;
float afterOfDP = 1234._5678F;
 
long frontOfLongSuffix = 1234_L;
float frontOfFloatSuffix = 1234.5678_F;
 
int hex = 0_x52;

 

 

 

 

 

 

 

 

'Java' 카테고리의 다른 글

Lambda, 무엇이 단점일까?  (0) 2020.10.20
Lambda 무엇이 좋을까?  (0) 2020.10.20
[Refactoring] if문  (0) 2020.10.20
Map의 Value 얻기 - KeySet => EntrySet  (0) 2020.10.12
HashMap의 동작방법  (0) 2020.10.12

댓글