✅ 숫자 타입

✏️ Var8

package variable;

public class Var8 {
  public static void main(String[] args) {
    // 정수
    byte b = 127; // -128 ~ 127
    short s = 32767;  // -32768 ~ 32767
    int i = 2147483647; // -2,147,483,648 ~ 2,147,483,647 (약 20억)

    // -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    long l = 9223372036854775807L;
    
    // 실수
    float f = 10.0f;
    double d = 10.0;
  }
}

메모리를 적게 사용하면 작은 숫자를 표현할 수 있고, 메모리를 많이 사용하면 큰 숫자를 표현할 수 있다.
변수를 선언하면 표현 범위에 따라 메모리 공간을 차지한다. 그래서 필요에 맞도록 다양한 타입을 제공한다.

✏️ 변수와 메모리 공간 크기

표현할 수 있는 숫자의 범위와 차지하는 메모리 공간은 다음과 같다.

  • 정수형
    • byte : -128 ~ 127 (1byte, 2⁸)
    • short : -32,768 ~ 32,767 (2byte, 2¹⁶)
    • int : -2,147,483,648 ~ 2,147,483,647 (약 20억) (4byte, 2³²)
    • long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 2⁶⁴)
  • 실수형
    • float : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 2³²)
    • double : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 2⁶⁴)
  • 기타
    • boolean : true, false (1byte)
    • char : 문자 하나 (2byte)
    • String : 문자열을 표현한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다.

✏️ 리터럴 타입 지정

  • 정수 리터럴int를 기본으로 사용한다. 따라서 int 범위까지 표현할 수 있다. 숫자가 int 범위인 약 20억을 넘어가면 L을 붙여서 정수 리터럴을 long으로 변경해야 한다. (대문자 L, 소문자 l 모두 가능하다. 그런데 소문자 l은 숫자 1과 착각할 수 있어서 권장하지 않는다.)
  • 실수 리터럴기본이 double을 사용한다. float형을 사용하려면 f를 붙여서 float형으로 지정해야 한다.

✅ 변수 타입 정리

이렇게 많은 변수들을 실제로 다 외우고 사용해야 할까?

✏️ 자주 사용하지 않는 타입

  • byte : 표현 길이가 너무 작다. 또 자바는 기본으로 4byte(int)를 효율적으로 계산하도록 설계되어 있다. int를 사용하자.
    • byte 타입을 직접 선언하고 여기에 숫자 값을 대입해서 계산하는 일은 거의 없다.
    • 대신에 파일을 바이트 단위로 다루기 때문에 파일 전송, 파일 복사 등에 주로 사용된다.
  • short : 표현 길이가 너무 작다. 또 자바는 기본으로 4byte(int)를 효율적으로 계산하도록 설계되어 있다. int를 사용하자
  • float : 표현 길이와 정밀도가 낮다. 실수형은 double을 사용하자.
  • char : 문자 하나를 표현하는 일은 거의 없다. 문자 하나를 표현할 때도 문자열을 사용할 수 있다.
    • 예를 들어 String a = “b”와 같이 사용하면 된다.

참고 : 메모리 용량은 매우 저렴하다. 따라서 메모리 용량을 약간 절약하기 보다는 개발 속도나 효율에 초점을 맞추는 것이 더 효과적이다.

⭐️ 자주 사용하는 타입

  • 정수 - int, long : 자바는 정수에 기본으로 int를 사용한다. 만약 20억을 넘을 것 같으면 long을 쓰면 된다.
    • 파일을 다룰 때는 byte를 사용한다.
  • 실수 - double : 실수는 고민하지 말고 double을 쓰면 된다.
  • 불린형 - boolean : true, false 참 거짓을 표현한다. 조건문에서 자주 사용된다.
  • 문자형 - String : 문자를 다룰 때는 문자 하나든 문자열이든 모두 String을 사용하는 것이 편리하다.

자주 사용하는 타입을 제외하고 실무에서 나머지를 사용하는 경우는 거의 없다. 그나마 파일 전송시에 byte를 사용하는 것 정도이다.

profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글

관련 채용 정보