Java Data Type
자바의 자료형 (data type)에 대해 작성을 해보려고 한다.
자바에서 자료형 기준은 크게 2가지로 나뉘게 된다.
자바의 자료형 기준
- 형태
- 길이
이 두 가지를 조건을 가지고 총 8가지의 기본형과 이외의 참조형으로 나뉘게 됩니다 (참조형은 추후 포스팅)
자료형 분류
기본형, 원시형(Primitive Type), 또는 값형(Value Type)이라 부름
여기에는 총 8가지가 존재
- 정수형 (byte, short, int, long)
- 실수형 (float, double)
- 문자형 (char)
- 논리형 (boolean)
정수형
byte : 이름 그대로 1byte(8bit)까지 받습니다 (자바에선 최소 8bit 부터 받을 수 있기 때문에)
- 즉 2^ 8 = 256개의 수를 표현 할 수 있으며
- 범위는 -128 ~ 127까지 입니다.
short : 2byte(16bit)까지 받을 수 있습니다
- 2^16 = 65535개의 수를 표현 할 수 있으며
- 범위는 -32768 ~ 32767 입니다.
int : 4yte(32bit) 가장 보편적으로 많이 사용하는 정수형입니다. (이유는 이후 포스트에서 작성)
- 2^32 = 약 42억
- 범위 : 약 -21억 ~ 21억
long : 8byte(64bit) 정수형에서는 가장 큰 값을 처리할 수 있으며
- 2^64 = 922경 * 2 개의 범위를 커버할 수 있으며 과거 강남스타일 조회수와 관련해서 이야기가 나온 적도 있습니다 .
- 간단히 설명하면 유튜브 조회수 표기를 32비트 방식 (int)로 하였으나 21억이 넘어가 오버플로우 현상(추후 포스트 예정)으로 인해 -21억 표기가 되어서 long으로 전환하여 922경까지 조회수를 받아올 수 있다는 내용입니다
int 와 long 관련 유튜브 기사
- 범위 : 약 -922경 ~ 922경
실수형
부호, 가수부, 지수부로 나뉘어 소수점 이하를 지수부로 보내고 정수부분을 가수부로 올림 . (부호는 추후 포스팅 예정 ( 디지털 논리회로 개념 ) )
float : 4byte(32bit) 까지 받을 수 있습니다.
- 부호에서 1bit 지수에서 8bit , 가수에서 23bit 를 사용합니다.
- 범위 : 1.4 * 10^(-45) ~ 3.4 * 10^(38)
- 정밀도 7자리까지이다. (소수점 이하 7자리)
- 단정도형이라고도 부름
double : 8byte (64bit) 가장 보편적으로 많이 사용하는 실수형입니다. (이유는 이후 포스트 작성)
- 부호 1bit 지수 11bit 가수 51bit 로 구성되어 있으며
- 범위 : 4.9 * 10^(-324) ~ 1.8 * 10^(308)
- 정밀도는 15자리이다 (소수점 이하 15자리)
- 배정도형이라고도 부름
문자형
char : 2byte(16bit) 까지 받을 수 있습니다.
- 숫자형(정수형)으로 받아 문자를 출력합니다
- ex) 65 -> A
- 양수 범위인 0~65535 까지 표현이 가능합니다 (이로 인해 short 값을 바로 char에 받으면 오류가 발생 할 수 있습니다.)
- 유니코드를 통해 영어가 아닌 언어도 가능합니다
- 단) 한 글자만 출력이 가능합니다 . (문장은 String을 통해 뽑아야 합니다)
논리형
boolean : 1byte (8bit)
오로지 참(true), 거짓(false) 2개밖에 없음
참이 나오면 1이고 거짓일 경우 0임
총정리
자료형 | 키워드 | 크기(byte) | 기본값 | 범위 |
---|---|---|---|---|
정수형 | byte | 1byte | 0 | -128 ~ 127 |
short | 2byte | 0 | -32768 ~ 32767 | |
int | 4byte | 0 | 약 -21억 ~ 21억 | |
long | 8byte | 0L | 약 -922경 ~ 922경 | |
실수형 | float | 4byte | 0F | 1.4 * 10^(-45) ~ 3.4 * 10^(38) |
double | 8byte | 0D | 4.9 * 10^(-324) ~ 1.8 * 10^(308) | |
문자형 | char | 2byte | "\u0000" | 0 ~ 65535 |
논리형 | boolean | 1byte | false / ture | 0,1 |
'java' 카테고리의 다른 글
자바의 연산자(Operator)-1 (0) | 2024.01.18 |
---|---|
[JAVA]자료형 변환 (0) | 2024.01.18 |
자바의 입력(Input) , Scanner , BufferedReader (0) | 2024.01.18 |
값형의 오류 (1) | 2024.01.18 |
자바의 Print문 (0) | 2024.01.18 |