티스토리 뷰
숫자에 underbar가 있는것을 보았다. 이게 뭐지.. 하고 찾아보니 아래와 같았다.
Oracle Java docs: Underscores in Numeric Literals
자바 8 인 액션을 보다가 숫자와 _(언더스코어)를 섞어서 쓰는 것을 처음 보았다. int a = 10_000_000; 이런 식인 것이다
자바7 이후 버전부터 _는 숫자 리터럴의 어디에도 등장할 수 있다. 이로 인해 숫자를 끊어 읽을 수 있게 되어 가독성을 향상 시킬 수 있다. 예를들어 int myMoneyWon = 180000000라고 할 때, 한번에 얼마인지 파악하기 힘들다. 하지만 int myMoneyWon = 180_000_000라고쓴다면 (한국인의 경우) 몇 원인지 파악하기 쉽다.
하지만 마음대로 숫자와 섞어 쓸수는 없다. _는 숫자 사이에만 올 수 있다. 아래와 같은 곳에는 위치할 수 없다.
- 숫자의 처음이나 끝
- 소수점 앞,뒤
- F나 L의 앞
- In positions where a string of digits is expected (정확한 해석이 필요하다... 8진수나 16진를 나타내는 문자위치가 아닌가 싶다)
아래 예제를 살펴보자
float pi1 = 3_.1415F; // 안됨; .의 앞에 위치 |
float pi2 = 3._1415F; // 안됨; .의 뒤에 위치 |
long socialSecurityNumber1 |
= 999_99_9999_L; // 안됨; L의 앞에 위치 |
int x1 = _52; // 숫자 표현이 아님 (_로 시작하는 것은 변수명이 됨) |
int x2 = 5_2; // 가능 |
int x3 = 52_; // 안됨; 숫자의 끝에 위치 |
int x4 = 5_______2; // 가능 |
int x5 = 0_x52; // 안됨; 16진수를 나타내는 0x사이에는 불가능 |
int x6 = 0x_52; // 안됨; 숫자의 시작에 위치 |
int x7 = 0x5_2; // 가능 (16진수) |
int x8 = 0x52_; // 안됨; 숫자의 끝에 위치 |
int x9 = 0_52; // 가능 (8진수) |
int x10 = 05_2; // 가능 (8진수) |
int x11 = 052_; // 안됨; 숫자의 끝에 위치 |
간단히 한문장으로 정리하자면 "숫자 사이에만 가능하고(숫자의 처음이나 끝에는 안됨), 소수점(.)이나 float과 long 표시 접미사(F, L), 그리고 진수 표현(0, 0x)의 사이나 뒤에는 불가능하다"
출처: https://countryxide.tistory.com/52 [배워서 남주자]
'ocajp 자격증 (Oracle Certified Associate Ja' 카테고리의 다른 글
자바 실수 Float (0) | 2020.03.03 |
---|---|
ocjap 문제 해설 - Float74 (0) | 2020.03.03 |
ocjap 문제 해설 - String toString() (0) | 2020.03.03 |
자바 String toString() (0) | 2020.03.03 |
ocjap 문제 해설 - extends 76 (0) | 2020.03.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- EC
- 오라클
- C언어
- 인포믹스
- XE
- 파이썬
- xe addon
- 파싱
- MySQL
- JDBC
- 플러터
- 스크래핑
- C
- ocajp
- Python
- 자바
- ocjap
- 라이믹스 모듈
- webix
- KG
- 이클립스
- php
- 프로씨
- XE3
- 문자열
- xe애드온
- 포인터
- 자바 smtp
- proc
- esql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함