sub_title
 개발자마당
제   목 (JAVA) 자바 리터럴(Literal) 의미와 용도
작성자 고구마 등록일 2017-04-28 08:35:00 조회수 2,645
자바에서 실수를 표현하는 Primitive Data Type으로 double과 float가 있다. 두 타입의 차이는 데이터 크기이다. float는 4바이트, double은 8바이트의 크기를 갖고 있다. 과거 메모리가 작았을 때에는 데이터 크기를 최적화 해 사용하는 것이 성능 향상에 큰 도움을 줬다. 하지만 램이 비약적으로 상승한 오늘날 크기가 성능에 큰 영향을 미치지 않게 되었다. 그로 인해 변수의 최적화에 대해 더 집중할 수 있게 되었다. 실수의 경우 자릿수가 많은 것이 보다 정확도를 높이는 데 중요할 것이다. 이를 정밀도라 하며 정밀도는 높은 것이 좋기 때문에 float와 double 중에 더 정밀도가 높은 8바이트의 double형을 주로 사용하게 된 것이다.

실수를 표현할 수 있는 데이터 타입은 float와 double의 두가지지만 표현할 수 있는 값의 범위는 double형이 훨씬 넓다. 따라서 오늘날 개발에서는 주로 double을 사용한다.

정수를 예로 보자.
정수 데이터 타입은 4가지지만 오늘날 메모리의 증대로 int와 long을 주로 사용한다. int는 4바이트로 표현할 수 있는 숫자의 범위가 대략 -21억 ~ 21억이다. 그 2배인 8바이트 변수 double을 사용하면 -9경 ~ 18경으로 훨씬 많은 변수를 표현할 수 있다. 그럼에도 불구하고 우리는 int를 훨씬 많이 사용한다.  이 역시 최적화와 관련이 있다. int형만으로도 우리가 사용하는 대부분의 숫자를 표현할 수 있는 것이다. 숫자가 많이 필요할 것 같은 부동산의 경우에도 단위를 천원이나 만원으로 한다면 1억도 10,000(억원)이면 표현이 가능하다.

그럼에도 불구하고 float 타입으로 변수를 저장하고 싶은 경우가 있을 것이다. 다음의 코드를 보자.

double num = 50.7; float num2 = 50.7;

우리는 다음과 같이 50.7을 할당하고 싶을 것이다. 당연할 거라고 생각하지만 이클립스에서 에러가 난다. 자바 컴파일러는 50.7을 double형의 데이터 포맷으로 인식하기 때문이다. 기본적으로 변수에는 같은 타입의 데이터만 할당이 가능하다. 그래야 컴파일러가 값을 인식할 수 있기 때문이다. 

float num = 50.7f;

다음과 같이 50.7의 뒤에 F를 붙여 할당하는 값의 타입이 실수 중 float 타입임을 나타낸다. 이러한 표기법을 리터럴(Literal)이라고 하고, 그 값인 50.7을 리터럴 값 (Literal Value) 이라고 한다.

주요 원시 타입(Primitive)의 리터럴은 다음과 같다.

정수
byte ( 1byte) : 10, 20, 30...
short ( 2byte) : 10, 20, 30...
int (4 byte) : 10, 20, 30...
long(8 byte) : 10L, 20L, 30L...

실수
double(8 byte) : 1.2, 10.34, 5.6...
float(4 byte) : 1.2F, 10.34F, 5.6F...

 - 자바의 정수, 실수 리터럴(표기법)과 리터럴 값
※ byte, short, int의 경우 리터럴 동일

 


 
0
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
31  자바(Java) 외부 프로젝트 공유(Share) 하기 이미지   member 고구마 0 / 0 1821 2017-04-29
30  SQL Injection 이미지   member 고구마 0 / 0 20986 2017-04-29
29  (JAVA) 자바 리터럴(Literal) 의미와 용도 이미지   member 고구마 0 / 0 2645 2017-04-28
28  (JAVA) 자바 상수 (final) 사용이유와 방법 이미지   member 고구마 0 / 0 2008 2017-04-28
27  (JAVA) 자바 스캐너(Scanner)로 파일 내용 읽어오기 이미지   member 고구마 0 / 0 4253 2017-04-28
26  리눅스 환경에 설치된 톰캣 재시작하기 이미지   member 높이뜬새 2 / 1 12519 2015-10-27
25  다음과 같은 에러가 발생할때 write failed: No space left on device (28) in Unknown on lin..   member 높이뜬새 1 / 1 4350 2015-07-09
24  sendmail 시작 재시작 종료하기   member 높이뜬새 0 / 0 4687 2015-06-29
23  find 명령어로 찾을 문자열이 들어간 파일찾기   member 컴퓨터존 3 / 0 19854 2010-03-04
22  아파치 재시작 없이 로그 삭제하기   member 컴퓨터존 0 / 0 18454 2010-03-04
21  IIS에서 FLV파일 MIME 타입 등록하기 이미지   admin 웹마당넷 1 / 0 12072 2009-11-27
20  동영상 트래픽 계산하기   member 컴퓨터존 0 / 0 10934 2009-11-18
19  리눅스계정 생성과 삭제 이미지   member 높이뜬새 0 / 0 8578 2009-08-26
18  리눅스에서 tar를 이용한 계정백업하기 이미지   member 높이뜬새 0 / 0 6100 2009-08-22
17  php파일로 실행될 확장자 추가하기   member 컴퓨터존 1 / 0 16614 2009-03-18
16  다음과 같은 에러가 발생할때 Could not reliably determine the server's fully qualified do..   member 높이뜬새 6 / 1 68557 2009-03-17
15  웹프로그래밍 언어별 리퍼러(referer) 구하기   admin 웹마당넷 2 / 0 44598 2009-03-05
14  방금 알게된 새로운 사실!! 윈도우 또는 alert 경고창 내용 복사   member 사라마음 2 / 0 6347 2009-02-15
13  특정 포트(PORT)가 열려있는지 확인하는 방법   member 컴퓨터존 1 / 1 104422 2009-01-22
12  URL이란?   admin 웹마당넷 1 / 0 10816 2009-01-14
11  명령어 프롬프트 창에서 IIS 시작,중지,리스타트하기   member 컴퓨터존 1 / 2 25552 2008-12-11
10  아파치(apache) 시작,중지,리스타트하기   member 컴퓨터존 4 / 3 104384 2008-12-08
9  Windows 미디어 서비스 HTTP 서버제어 프로토콜 활성화 이미지   admin 웹마당넷 0 / 0 5739 2008-09-27
8  리눅스(Linux) 쉘 상태에서 웹서버 접속자 수 알아내기   member 컴퓨터존 0 / 0 3198 2008-09-04
7  [서버운영] 웹 해킹 흔적을 찾는 간단한 find 명령어   member 파도 0 / 1 4118 2008-07-02
write
button [1] [3] button