타입(Data Type)은 해당 데이터가 메모리에 어떻게 저장되고, 어떻게 처리되어야 하는지 명시적으로 알려주는 역할을 한다.
자바에서는 이런 형태를 미리 정의하여 제공하고 있다.
- 정수형 타입
정수형 타입 | 할당되는 메모리 크기 | 데이터의 표현 범위 |
byte | 1바이트 | -128 ~ 127 |
short | 2바이트 | -2^15 ~ (2^15 - 1) |
-32, 768 ~ 32,767 | ||
int | 4바이트 | -2^31 ~ (2^31 - 1) |
-2,147,483,648 ~ 2,147,483,647 | ||
long | 8바이트 | -2^63 ~ (2^63 - 1) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
- 정수형 데이터 타입을 결정할 때는 반드시 자신이 사용하고자 하는 데이터의 최대 크기를 고려해야한다.
- 해당 타입이 표현할 수 있는 범위 밖의 데이터를 저장하면, Overflow가 발생해 전혀 다른 값이 저장되기 때문이다.
- Overflow는 해당 타입이 표현할 수 있는 최대 범위보다 큰 수를 저장할 때 발생하는 현상이며, 발생 시 최상위 비트를 벗어난 데이터가 인접 비트를 덮어쓰므로, 잘못된 결과를 얻게 된다.
- 그 반대로 최소 범위보다 작은 수를 저장할 때 발생하는 것은 Underflow라고 한다.
public class OverflowExample{
public static void main(String[] args){
byte num1 = 127;
byte num2 = -128;
num1++;
num2--;
System.out.println(num1); // -128;
System.out.println(num2); //127;
}
}
- 실수형 타입
실수형 타입 | 지수의 길이 | 가수의 길이 | 유효 자릿수 |
float | 8 비트 | 23 비트 | 소수 부분 6자리까지 오차없이 표현할 수 있음. |
double | 11 비트 | 52 비트 | 소수 부분 15자리까지 오차없이 표현할 수 있음. |
실수형 타입 | 할당되는 메모리의 크기 | 데이터의 표현 범위 | 리터럴 타입 접미사 |
float | 4바이트 | (3.4 X 10-^38) ~ (3.4 X 10^38) | F 또는 f |
double | 8바이트 | (1.7 X 10^-308) ~ (1.7 X 10^308) | D 또는 d (생략 가능함) |
- 자바에서 실수는 소수부나 지수부가 있는 수를 가르키며, 정수보다 넓은 표현 범위를 가진다
- 하드웨어 발달로 현재에는 double형을 많이 사용하며, 기본이 되는 타입은 double형이다
- 실수형 데이트 타입 결정 시에는 표현 범위 이외에 유효 자릿수를 고려해야한다.
- 컴퓨터에서 실수를 표현하는 방식은 오차가 발생할 수 밖에 없는 태생적 한계를 가지며, 모든 프로그래밍 언어에서 발생하는 공통된 문제이다
- 문자형 타입
문자형 타입 | 할당되는 메모리의 크기 | 데이터의 표현 범위 |
char | 2 바이트 | 0 ~ 216 |
- 자바에서 문자형 타입은 작은 정수나 문자 하나를 표현할 수 있는 것을 의미한다
- 기본은 char 타입이다
- 컴퓨터는 2진수 밖에 인식하지 못하므로 문자도 숫자료 표현해야 인식할 수 있다
- 자바에서는 유니코드를 사용하여 각 나라 모든 언어를 표현할 수 있으며, 유니코드는 문자 하나를 16비트로 표현하므로, 총 65,536개의 문자를 표현할 수 있다
- 논리형 타입
논리형 타입 | 할당되는 메모리의 크기 | 데이터의 표현 범위 |
boolean | 1바이트 | true 또는 false |
- boolean형의 기본 값은 false이며, 가장 작은 크기인 1바이트의 크기를 가진다
반응형
'개발 > 자바' 카테고리의 다른 글
자바 연산자(산술, 대입, 증감, 비교, 논리, 삼항, instanceof) (0) | 2022.09.14 |
---|---|
자바 타입 변환 (0) | 2022.09.13 |
자바의 상수 (0) | 2022.09.05 |
자바 프로그램 1(기본 구조, 변수) (0) | 2022.09.04 |
자바 실행순서 및 프로그램 (0) | 2022.09.04 |
댓글