ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (JAVA) 자바 리터럴(Literal) 의미와 용도
    JAVA/컨셉 , 예제 2018. 8. 24. 10:36

    자바에서 실수를 표현하는 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의 경우 리터럴 동일



Designed by Tistory.