변수의 타입이란, 변수에 저장하려는 데이터의 종류를 정의한 것이다.
변수를 선언한 후에는 타입을 변경할 수 없기 때문에 변수를 선언할 때 어떤 타입을 선언할지 고려해야 한다.
자바는 총 8가지의 기본 타입을 정의하여 제공한다.
크게 정수형, 실수형, 문자형, 논리형으로 나눌 수 있다.
기본 타입의 주요 특징
- CPU나 운영체제에 따라 변하지 않는다.
- 비객체 타입으로 null값을 가질 수 없다.
- stack에 바로 사용할 수 있는 값(실제 값)을 바이트 단위로 저장한다.
- 타입마다 저장되는 값의 범위가 다르고 이 범위를 초과하게 되면 오버플로우 현상이 발생한다.
기본 타입의 종류
논리형
- 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
long abc = 30000000000L;
long abc = 30000000000;
실수형
- 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);
System.out.println(doub1);
문자형
- char
- 작은 따옴표로 감싼 문자가 유니코드로 저장된다.
- 기본값: '\u0000'
- 할당되는 메모리 크기: 2 byte(유니코드)
- 데이터의 표현 범위: 0 ~ 65,535
char var1 = 'A';
System.out.println(var1);