Java 정수 자료형(Type)

변수 하나 표현할 수 있는 숫자를 정해져 있다.
자바에서 정해진 숫자는 Data Type에 따라서 다르다. 변수 선언 시 표현 범위에 따라 메모리 공간을 할당 한다. 그래서 필요에 맞게 타입을 할당해야 한다.

정수 Type 변수와 메모리 공간 크기

프로그램에 할당되는 메모리 공간

  • 정수형
    • byte: 1byte, 2^8, -126 ~ 127
    • short: 2byte, 2^16, -32768 ~ 32767
    • int: 4byte, 2^32, -2147483648 ~ 2147483647
    • long: 8byte, 2^64, -9223372036854775808 ~ 9223372036854775807
  • 실수형
    • float: 4byte, 2^32, 약 -3.4E38 - 3.4E38, 7가지 정밀도
    • double: 8byte, 2^64, 약 -1.7E308 - 1.7E308, 15가지 정밀도
  • Boolean형
    • boolean: 1byte, [(true, false), (0, 1)]
  • 문자형
    • char: 1byte, 영문자 하나
  • 문자열형
    • String: 가변길이, 문자 길이에 따라 동적으로 메모리 할당

리터럴 타입 지정

정수 리터럴은 int를 기본으로 사용한다. 그리고
실수 리터럴은 double를 기본으로 사용한다.

코드 작성 시 리터럴을 지정할 때 long과 float은 문법 오류가 발생되지 않도록 l 또는 f을 붙어줘야한다.
정수 리터럴 long를 사용할 때는 끝부분 L를 붙인다.
실수 리터럴 float은 끝부분 f를 붙인다.

영문l과 숫자1 헷갈리므로 L로 표현한다.

자바 실무에서는?

실무에서 사용 안하는 타입

  • byte: 표현길이가 작다. (전체 256)
    • byte 타입을 직접 선언하고 계산하는 경우는 없다.
    • 그러나 파일을 바이트 단위로 다루는 파일 전송 및 파일 복사에 사용된다.
  • short: 마찬가지로 표현길이가 작다 (전체 65536)
  • float: 표현길이뿐 아니라 정밀도가 낮다.
  • char: 문자 하나를 표현하는 일이 없어졌다. 문자 하나를 표현할 때는 String으로 권장한다.
    • 문자 하나를 표현할 때 String c = "A"와 같이 사용한다.

실무에서 사용하는 타입

  • int, long: 자바는 기본으로 4byte 계산에 최적화 되어있다. 20억을 넘어갈 경우 long을 사용한다.
    • 파일은 byte를 사용한다.
  • double: 실수형은 double 기본타입으로 사용한다.
  • boolean: true, false 조건문에서 자주 사용한다.
  • String: 문자를 다룰 때는 String을 권장한다.

부록1 자바 코드 구현

각 자료형을 자바로 구현하도록 하자.

public class Hello1 {
    public static void main(String[] args) {
        // 정수 자료형
        byte b = 127; // -128 ~ 127
        short s = 32767; // -32,768 ~ 32,767
        int i = 2147483647; // -2,147,483,648 ~ 2,147,486,647 (20억)
        long l = 9223372036854775807L;
        // -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (922경)

        // 실수 자료형
        float f = 3.4E38f; // 약 -3.4E38 - 3.4E38, 자릿수 7 정밀도
        double d = 1.7E308; // 약 -1.7E308 - 1.7E308, 자릿수 15 정밀도

        System.out.println("정수 자료형");
        System.out.println(b);
        System.out.println(s);
        System.out.println(i);
        System.out.println(l);
        System.out.println("실수 자료형");
        System.out.println(f);
        System.out.println(d);
    }
}

다음과 같이 출력한다.

Console Output:
정수 자료형
127
32767
2147483647
9223372036854775807
실수 자료형
3.4E38
1.7E308