[Java] 변수(Variable) - 기본 타입(Primitive type)

chael_lo·2021년 5월 2일
0

Java

목록 보기
2/52

변수의 타입이란, 변수에 저장하려는 데이터의 종류를 정의한 것이다.
변수를 선언한 후에는 타입을 변경할 수 없기 때문에 변수를 선언할 때 어떤 타입을 선언할지 고려해야 한다.

자바는 총 8가지의 기본 타입을 정의하여 제공한다.
크게 정수형, 실수형, 문자형, 논리형으로 나눌 수 있다.

기본 타입의 주요 특징

  1. CPU나 운영체제에 따라 변하지 않는다.
  2. 비객체 타입으로 null값을 가질 수 없다.
  3. stack에 바로 사용할 수 있는 값(실제 값)을 바이트 단위로 저장한다.
  4. 타입마다 저장되는 값의 범위가 다르고 이 범위를 초과하게 되면 오버플로우 현상이 발생한다.

기본 타입의 종류

논리형

  • Boolean
    • 맞다, 틀리다를 표현할 때 사용한다.
    • 기본값: false
    • 할당되는 메모리 크기: 1byte
    • 데이터의 표현 범위(저장되는 값의 범위): 소문자 true, false
boolean isOddEven = true;
boolean isOddEven = false;

정수형

  • byte

    • 기본값: 0
    • 할당되는 메모리 크기: 1byte
    • 데이터의 표현 범위: 128 ~ 127
  • short

    • 기본값: 0
    • 할당되는 메모리 크기: 2 byte
    • 데이터의 표현 범위: -32,768 ~ 32,767
  • int(기본 타입)

    • 컴파일러는 기본적으로 정수 리터럴을 int 타입으로 간주한다.
    • 정수 리터럴이 int 타입의 허용범위를 초과할 경우(long), long 타입임을 컴파일러에게 알려주어야 한다.
    • 기본값: 0
    • 할당되는 메모리 크기: 4 byte
    • 데이터의 표현 범위: -2,147,483,648 ~ 2,147,483,647
  • long

    • 기본값: 0L
    • 할당되는 메모리 크기: 8 byte
    • 데이터의 표현 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
//정수 리터럴이 int 타입의 허용 범위 이상일 경우 마지막에 L 붙이기
long abc = 30000000000L; 

// The literal 30000000000 of type int is out of range
long abc = 30000000000; //error

실수형

  • float
    • 기본값: 0.0F
    • 할당되는 메모리 크기: 4 byte
    • 데이터의 표현 범위: (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값
  • double(기본 타입)
    • float 타입보다 2배의 정밀도를 갖는 타입이다.
    • 실수 리터럴을 기본적으로 double 타입으로 해석한다.
      실수 리터럴을 float 타입 변수에 저장하면 컴파일 에러가 발생한다.
      실수 리터럴을 float 타입으로 저장하고 싶다면 리터럴 뒤에 f나 F를 붙여야 한다.
    • 기본값: 0.0
    • 할당되는 메모리 크기: 8 byte
    • 데이터의 표현 범위: (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
float flo1 = 0.1234567890123456789f; 
double doub1 = 0.1234567890123456789;

System.out.println(flo1); //출력: 0.12345679
System.out.println(doub1); //출력: 0.12345678901234568

문자형

  • char
    • 작은 따옴표로 감싼 문자가 유니코드로 저장된다.
    • 기본값: '\u0000'
    • 할당되는 메모리 크기: 2 byte(유니코드)
    • 데이터의 표현 범위: 0 ~ 65,535
char var1 = 'A'; //유니코드: 65
System.out.println(var1); //출력: A
profile
천천히 꾸준히

0개의 댓글